2つの異なるローカルホストで動作するように角度アプリを設定しようとしています。Angularアプリケーションでプロキシを使用すると、504(ゲートウェイタイムアウト)エラーが発生する
プロジェクトルートにbackend
フォルダを作成し、echo.php
ファイルを追加しました。
ngOnInit(){
this.http.get('http://localhost:4200/backend/echo.php').subscribe(data => {
console.log(data);
});
}
:私はecho.phpを取得しようと
{
"/backend/**": {
"target": "http://localhost:80",
"secure": false
}
}
:プロジェクトのルートでは、私はまた、follwingコンテンツにproxy.conf.jsonを作成しました
ng serve --port 4200 --host 0.0.0.0 --proxy-config proxy.conf.json
ブラウザコンソールでは、504 error Gateway Timeout
が表示されています。ターミナルで、エラーは少し違って聞こえます:
[HPM] Error occurred while trying to proxy request /backend/echo.php from localhost:4200 to http://localhost:80 (ENOTFOUND)
私は何が間違っているのか分かりません。あなたは正しい方向に私を向けることができますか? 私はこのURLで直接角度のない(ポート80で動作している)サーバー上のファイルにアクセスできます:http://localhost/backend/echo.php。
EDIT:
echo.php:
<?php
echo "data from php";
エラーが直接あなたのバックエンドを消費したときにエラーが出る場合の角に関係していないようです。あなたは 'php'として質問をタグ付けし、Angularコードの代わりにあなたのPHPコードと関連する設定を追加する運が多くあります。 (PHPフレームワークを使用していますか?それも含めてください) – MondKin
http://localhost/backend/echo.phpを使用してリソースに直接アクセスする際にエラーは発生しません。エラーは、localhost:4200からlocalhost:80にプロキシするときにだけスローされます。 – sanjihan
あなたのコードを試したところ、私のマシンで動作します。 ''ターミナルで言うと、エラーは少し違って見える "'、curlを使って端末からサーバを呼び出すのですか、 '' ng serve'で記録されたメッセージを意味していますか?カールした場合に使用するコマンドを投稿できますか?また、どのシステム/コンテナでこれを実行していますか? – MondKin