我試圖設置角度應用以使用2個不同的本地主機。在Angular應用中進行代理時出現504(網關超時)錯誤
我在項目根目錄下創建了一個backend
文件夾,並在其中添加了echo.php
文件。在項目的根,我也創建proxy.conf.json與follwing內容:
{
"/backend/**": {
"target": "http://localhost:80",
"secure": false
}
}
我嘗試獲取與echo.php:
ngOnInit(){
this.http.get('http://localhost:4200/backend/echo.php').subscribe(data => {
console.log(data);
});
}
啓動角應用:
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。
編輯:
echo.php:
<?php
echo "data from php";
如果直接使用後端時出現錯誤,則錯誤與Angular看起來沒有關係。你將會有更多的運氣將問題標記爲'php',並且包含你的PHP代碼和相關配置,而不是Angular代碼。 (您是否使用了一些PHP框架?也包括在內) – MondKin
直接使用http://localhost/backend/echo.php訪問資源時,我沒有收到任何錯誤。從localhost代理時只出現錯誤:4200到localhost:80 – sanjihan
我剛試過你的代碼,它在我的機器上工作。當你說''在終端中,這個錯誤聽起來有點不同',你是否使用curl從終端調用你的服務器,或者你的意思是'ng serve'記錄的消息?如果捲曲,你可以發佈你使用的命令嗎?另外,你在運行這個系統/容器? – MondKin