Lev*_*ter 6 javascript php npm econnrefused angular
首先,我是 Angular 的新手,我正在逐步观看教程视频。我在这个问题上被困了近两周,并花了很多时间在其他类似的论坛上寻找解决方案。我意识到这是一个常见的错误,但在尝试了几十个左右的解决方案但没有成功之后,我想我不妨发布我的经验,也许它可以为我们许多人似乎遇到的这个问题提供一些线索。
当继续观看 1:42:00 左右开始的视频的“Angular 教程 #13”部分时,会发生错误。我完全按照视频中所示的步骤进行操作,但在运行“npm start”的终端中遇到以下错误消息:[HPM] Error occurred while trying to proxy request /api/file.php from localhost:4200 to http://localhost:1234 (ECONNREFUSED)
My package.json script for “start”: “ngserve --proxy-config proxyconfig.json “并且我的 proxyconfig.json 包含:
{
"/api":{
"target": "http://localhost:1234",
"secure": false,
"changeOrigin": true
}
}
Run Code Online (Sandbox Code Playgroud)
在 CMD 中,我导航到文件夹“intro2angular”,它是“/test/api/file.php”的根目录,并且在 VisualStudioCode 中的 powershell 中php -S localhost:1234运行之前运行。npm start然后我就跑npm start。代码编译成功。在 Chrome 中,如果我转到,http://localhost:1234/test/api/file.php文件就会显示在浏览器中。但是,如果我转到并单击执行代码以请求file.php 的http://localhost:4200锚点,则错误将显示在终端中。在Chrome 开发者工具的网络选项卡中,当我检查file.php的标头时,我看到以下内容:[HPM] Error occurred while trying to proxy request /api/file.php from localhost:4200 to http://localhost:1234 (ECONNREFUSED)
Request URL: http://localhost:4200/api/file.php
Request Method: GET
Status Code: 504 Gateway Timeout
Remote Address: 127.0.0.1:4200
Referrer Policy: no-referrer-when-downgrade
Run Code Online (Sandbox Code Playgroud)
请原谅我冗长地解释了我遵循的每一个步骤,但由于我已经看到了几个类似的论坛帖子,涉及在尝试使用代理时引发的 ECONNREFUSED 错误,我认为包括每个小细节可能是必要的,以区分 ECONNREFUSED 的来源本例中的错误。如果需要更多详细信息/代码,我非常乐意将其包含在内。
请注意,这不是完整的列表,我尝试了其他几种解决方案,但这些似乎是最常见的,对其他人也有效。另外,我并不是说我不会再尝试这些解决方案,因为我愿意接受任何和所有建议。
setTimeout添加延迟.getData()"pathRewrite": {"^/api" : ""}的选项我感谢围绕此问题的任何和所有帮助/建议/讨论,因为我自己没有取得成功,并且在解决此问题之前我无法继续使用角度教程。先感谢您。
小智 13
我遇到了同样的问题并寻找了很长时间的解决方案......
就我而言,它有助于提供本地主机的 IP,而不是“本地主机”。
因此,将您的代理配置更改为:
{
"/api":{
"target": "http://127.0.0.1:1234",
"secure": false,
"changeOrigin": true
}
}
Run Code Online (Sandbox Code Playgroud)
并且尝试使用“ngserve --proxy-config proxyconfig.json”而不是 npm start 版本。我读到有时某些人会忽略 package.json 配置部分。
希望这可以帮助!
小智 7
如果您使用 Angular 和 PHP 内置服务器,则必须使用双方的 IP 地址。所以类似:"target": "http://127.0.0.1:8000"在 Angular 方面 +php -S 127.0.0.1:8000 -t public在 PHP 方面。