【问题标题】:Why can I call api port from React app using ip address, but not when I use "localhost"为什么我可以使用 IP 地址从 React 应用程序调用 api 端口,但当我使用“localhost”时却不能
【发布时间】:2020-02-28 17:02:24
【问题描述】:

React 或 axios 似乎不明白本地主机设置为什么。

我在端口 3000 上提供一个 react 客户端应用程序,在端口 3030 上提供一个 react api 服务器。

我可以从命令行调用curl -s localhost:3030 并得到很好的回复。但是当我使用 axios 调用或在我的客户端应用程序中获取时,我得到net::ERR_CONNECTION_REFUSED

例如,这是有效的:

axios.post("http://xxx.xx.xxx.xxx:3030/authentication", {

这不起作用(net::ERR_CONNECTION_REFUSED):

axios.post("http://localhost:3030/authentication", {

(其中localhost是上面xxx号的同一台机器)

我认为这不是 CORS 问题,因为我已尝试在服务器中设置以下标头并在发布请求中发送它们。

"Access-Control-Allow-Origin"

"Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"

另外,我的浏览器似乎明确地报告了 CORs 错误(至少以前是这样)

【问题讨论】:

    标签: reactjs axios


    【解决方案1】:

    如果您从不同的端口为您的客户端(React 应用程序)提供服务,并且在 3030 中它只是您的后端,那么它可能是 CORS。您应该将后端服务器配置为接受来自应用程序域的请求。

    【讨论】:

    • 似乎不是 CORS 问题。我在上面的原始问题中添加了一些端口详细信息和标题部分,以尝试使其更清晰。但感谢您的意见。此外,我认为 localhost 应该解析到相同的 IP 地址——所以没有跨站点问题,不是吗?看起来更像是 React 或 axios 不理解 localhost 的值。
    猜你喜欢
    • 2017-03-02
    • 1970-01-01
    • 2018-11-07
    • 2015-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-05
    • 1970-01-01
    相关资源
    最近更新 更多