我正在使用react本机Fetch API从https://api.github.com/users/{username}
获取JSON数据,但请求失败并显示以下错误消息。
“TypeError:网络请求失败{stack:(...),message:'Network 请求失败'}“。
我相信https,有时你得到 NSURLAuthenticationChallenge 。我不知道如何实现这一点。有人对此有任何想法吗?
答案 0 :(得分:2)
如果您使用的是iOs,则可能需要执行以下操作:
您必须启用AppTransportSecurity
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
在Info.plist中。
对于Android,请确保您已添加在AndroidManifest.xml中使用INTERNET的权限。
<uses-permission android:name="android.permission.INTERNET" />
答案 1 :(得分:1)
您能提供fetch
代码的摘要吗?
通常,fetch
语句的写法如下:
fetch(requestURL)
.then( (response) => response.json() )
.then( (data) => {
this.setState({data: data});
})
.catch( (error) => console.log(error) )
.done();
捕获错误将允许程序继续运行而不会崩溃。
答案 2 :(得分:0)
在我的情况下,问题不在代码中。我没有网络时就开始模拟器了。我在模拟器上登录到wifi点网络后仍然没有运行。我重新启动了模拟器 - 一切正常。
所以:
连接到网络。
重新启动模拟器。
如果没有帮助,请检查您的代码。
答案 3 :(得分:0)
我也经常遇到这个问题React Native Fetch Request Fails
。
在我的情况下,API调用的响应大约是5kb,因此我从API响应中删除了不必要的数据,并将结果大小减小到大约1kb,并且所有数据都开始工作。
因此,请尝试限制您从API请求的数据。