我试图设置角度应用以使用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