React Native使用fetch请求报TypeError: Network request failed错误求助
问题排查步骤
- 检查iOS应用的ATS配置
iOS默认禁止HTTP协议请求,如果你本地服务端用的是HTTP地址而不是HTTPS,需要在iOS项目的Info.plist文件中添加ATS豁免配置。打开ios/[你的项目名]/Info.plist,在根dict节点下插入如下代码:
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>
改完之后重新构建应用再测试。
确认.env中的服务端地址是否正确
你用iPhone模拟器或者真机调试时,localhost/127.0.0.1指向的是移动设备本身的本地地址,不是你电脑运行的服务端地址。需要把.env里的地址替换为你电脑当前的局域网IP(可在电脑网络设置里查看,格式通常为192.168.x.x),同时带上服务端运行的端口号,比如http://192.168.3.2:3000。如果是真机调试,还要保证手机和电脑连接同一个WiFi。排查端口访问权限
打开电脑的防火墙设置,确认服务端运行的端口没有被防火墙拦截。也可以先在电脑的浏览器或者Postman里直接访问你填在.env里的完整接口地址,确认服务端本身可以正常返回响应,排除服务端本身的故障。检查请求代码逻辑
确认fetch/axios的请求方法、路径、参数格式没有拼写错误,请求头配置符合服务端要求。
内容的提问来源于stack exchange,提问作者Karrar Al-Mimar
相关产品推荐
相关产品推荐

