axios 的网络错误和本机反应

新手上路,请多包涵

我使用我在外部托管的 Django python 框架创建了一个 API 端点。我可以从浏览器( mydomain.com/endpoint/ )访问我的端点并验证没有错误。当我在我的开发机器上本地运行我的测试 django 服务器时也是如此( localhost:8000/endpoint/ )。当我使用本地主机作为端点时,我的 json 数据可以毫无问题地通过。当我使用我的生产域时,axios 遇到网络错误,并且它提供的上下文并不多……从调试控制台我得到这个:

 Error: Network Error
    at createError (createError.js:16)
    at XMLHttpRequest.handleError (xhr.js:87)
    at XMLHttpRequest.dispatchEvent (event-target.js:172)
    at XMLHttpRequest.setReadyState (XMLHttpRequest.js:554)
    at XMLHttpRequest.__didCompleteResponse (XMLHttpRequest.js:387)
    at XMLHttpRequest.js:493
    at RCTDeviceEventEmitter.emit (EventEmitter.js:181)
    at MessageQueue.__callFunction (MessageQueue.js:353)
    at MessageQueue.js:118
    at MessageQueue.__guardSafe (MessageQueue.js:316)

这是我在反应原生组件中的 axios 调用:

     componentDidMount() {
        axios.get('mydomain.com/get/').then(response => {  // localhost:8000/get works
            this.setState({foo:response.data});
        }).catch(error => {
            console.log(error);
        });
    }

原文由 smilebomb 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 833
2 个回答

似乎未加密的网络请求在iOS中默认被阻止,即 https 会工作, http 不会。

从文档

默认情况下,iOS 将阻止任何未使用 SSL 加密的请求。如果您需要从明文 URL(以 http 开头的 URL)获取,您首先需要添加应用程序传输安全异常。

原文由 smilebomb 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果您尝试在使用 AVD 创建的 android 模拟器上调用 localhost,将 localhost 替换为 10.0.2.2 为我解决了这个问题。

原文由 Esteban Vega 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏