在Angular应用程序中进行代理时出现504(网关超时)错误
发布时间:2020-12-17 10:24:54 所属栏目:安全 来源:网络整理
导读:我正在尝试设置角度应用程序以使用2个不同的本地主机. 我在项目根目录中创建了一个后端文件夹,并在其中添加了echo.php文件.在项目根目录中,我还创建了proxy.conf.json,其中包含以下内容: { "/backend/**": { "target": "http://localhost:80","secure": fal
我正在尝试设置角度应用程序以使用2个不同的本地主机.
我在项目根目录中创建了一个后端文件夹,并在其中添加了echo.php文件.在项目根目录中,我还创建了proxy.conf.json,其中包含以下内容: { "/backend/**": { "target": "http://localhost:80","secure": false } } 我尝试用以下方法获取echo.php: ngOnInit(){ this.http.get('http://localhost:4200/backend/echo.php').subscribe(data => { console.log(data); }); } 启动Angular应用程序: ng serve --port 4200 --host 0.0.0.0 --proxy-config proxy.conf.json 在浏览器控制台中,我收到504错误网关超时.在终端中,错误听起来有点不同: [HPM] Error occurred while trying to proxy request /backend/echo.php from localhost:4200 to http://localhost:80 (ENOTFOUND) 我不知道我做错了什么.你能为我指出正确的方向吗? 编辑: echo.php: <?php echo "data from php";
经过许多小时,我发现了真正的问题.它源于在proxy.conf.json中指定目标.这是对的:
{ "/backend/*": { "target": "http://127.0.0.1","secure": false,"changeOrigin":true,"logLevel": "debug" } } 这不是: { "/backend/*": { "target": "http://localhost","logLevel": "debug" } } 这可能与不能自己执行服务有关. ng serve 命令返回错误: getaddrinfo ENOTFOUND localhost Error: getaddrinfo ENOTFOUND localhost at errnoException (dns.js:28:10) at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:76:26) 这是一个老问题,我从来没有深究这个错误.相反,我只是使用ng serve –port 4200 –host 0.0.0.0来绕过它. 如果有人可以解释为什么这样做会很棒.我的/ etc / hosts文件包含以下内容: 127.0.0.1 localhost 255.255.255.255 broadcasthost ::1 localhost 192.168.1.1 router.hm 127.0.0.1 My-MBP # added by Apache Friends XAMPP (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |