【问题标题】:Cannot access localhost from Javascript net::ERR_CONNECTION_REFUSED无法从 Javascript net::ERR_CONNECTION_REFUSED 访问 localhost
【发布时间】:2021-07-01 23:04:56
【问题描述】:

我有一个 node.js express 服务器在端口 7070 上托管我的 API。我有一个 Flask 服务器在端口 5000 上托管我的网页。我可以使用带有 curl http://localhost:7070/latest 的 curl 从服务器访问我的 API,API 返回结果成功地。在我的网络服务器上,我尝试使用 getJSON 调用 API,但它仅在我将 localhost 替换为服务器本地 IP 时才有效。

如果我尝试使用带有 http://127.0.0.1:7070/latesthttp://localhost:7070/latest 的 localhost 访问我的 API,则创建一个 net::ERR_CONNECTION_REFUSED 会在 chrome 中引发错误。

如果我将 localhost 更改为我的本地 IP 192.168.68.72 for http://192.168.68.72:7070/latest,它可以正常工作。我需要使用 localhost,因为我的应用程序是自托管的,因此无法硬链接 URL。

我在这里做错了什么,我已经搜索了以前的问题并检查了端口是否打开netstat -tnlp

我需要用其他方式连接到同一台服务器,但使用不同的端口而不是本地主机吗?

谢谢

【问题讨论】:

  • getJSON 听起来像 jQuery?这意味着您从浏览器内部请求 API,这意味着 localhost 指的是运行您的浏览器的计算机,即您坐在前面的机器,而不是 Pi。解决此问题的一种方法是通过您的烧瓶服务器发出 API 请求,例如使用/api/latest 之类的路由,并让烧瓶将/api 请求转发到 7070 服务器。
  • @ChrisG 是的 getJSON 是 jQuery,我想可能是这种情况,我会考虑通过 Flask 来做,你有任何链接或任何替代方法吗?
  • "//" + location.host + ":7070/latest" 也应该可以工作
  • @ChrisG 尝试访问 http//192.168.68.72:5000:7070/latest,我该如何摆脱网络服务器的 :5000 端口?
  • location.host.split(':')[0] 应该这样做

标签: javascript node.js express


【解决方案1】:

感谢 Chris,我意识到 localhost 正在查看我自己的 PC,而不是服务器 PC。

为了解决这个问题,我使用了"//" + location.hostname + ":7070/latest" 而不是http://localhost:7070/latest,而且效果很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-23
    • 1970-01-01
    • 2021-07-05
    • 2016-04-10
    • 2021-12-16
    • 2016-07-21
    • 1970-01-01
    相关资源
    最近更新 更多