React Native fetch() 网络请求失败

新手上路,请多包涵

当我使用 react-native init (RN 版本 0.29.1)创建一个全新的项目并将渲染方法中的 fetch 放入公共 facebook 演示电影 API 时,它会抛出 Network Request Failed 。有一个非常无用的堆栈跟踪,我无法在 chrome 控制台中调试网络请求。这是我要发送的获取:

fetch('http://facebook.github.io/react-native/movies.json')
      .then((response) => response.json())
      .then((responseJson) => {
        return responseJson.movies;
      })
      .catch((error) => {
        console.error(error);
      });

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

阅读 1.3k
2 个回答

这里的问题是iOS默认不允许HTTP请求,只允许HTTPS。如果您想启用 HTTP 请求,请将其添加到您的 info.plist

 <key>NSAppTransportSecurity</key>
 <dict>
 <key>NSAllowsArbitraryLoads</key>
 <true/>
 </dict>

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

我使用 localhost 作为地址,这显然是错误的。将其替换为服务器的 IP 地址(在模拟器所在的网络中)后,它运行良好。

编辑

在Android Emulator中,开发机地址为 10.0.2.2 。更多解释 在这里

对于 Genymotion,地址是 10.0.3.2 。更多信息 在这里

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

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