android - React Native fetch() 在 Android 7 上抛出 'Network request failed',但在 Android 6 上工作正常

标签 android react-native fetch

我发现 ( question ) 在 Android SDK 平台 23 (Android 6) 上获取请求成功结束,但在 Android SDK 平台 24 (Android 7) 上出现错误“网络请求失败”:

try {
   let res = await fetch('https://pricesea.ru/api/auth/login', {
     method: 'POST',
     credentials: 'include',
     headers: new Headers({'Accept': 'application/json', 'Content-type': 'application/x-www-form-urlencoded'}),
     body: `username=${this.state.username}&password=${this.state.password}`
   });

   if (res.ok) {
     ...
   }
} catch (e) {
   console.log(e);
}

错误:

TypeError: Network request failed
at XMLHttpRequest.xhr.onerror (fetch.js:441)
at XMLHttpRequest.dispatchEvent (event-target.js:172)
at XMLHttpRequest.setReadyState (XMLHttpRequest.js:546)
at XMLHttpRequest.__didCompleteResponse (XMLHttpRequest.js:381)
at XMLHttpRequest.js:485
at RCTDeviceEventEmitter.emit (EventEmitter.js:181)
at MessageQueue.__callFunction (MessageQueue.js:260)
at MessageQueue.js:101
at MessageQueue.__guard (MessageQueue.js:228)
at MessageQueue.callFunctionReturnFlushedQueue (MessageQueue.js:100)

我使用的是 RN 0.46.3。

这可能是什么原因?

编辑:我测试了从 22 到 26 的 API 版本,问题仅出现在 API 24 (Android 7.0) 上。在其他 API 版本上,请求成功结束。

编辑2: Github RN问题:https://github.com/facebook/react-native/issues/15100

最佳答案

这是 Android 7.0 上的一个错误,如 described here 。 Vicky Chijwani 提出的解决方法:

Configure your server to use the elliptic curve prime256v1. For example, in Nginx 1.10 you do this by setting ssl_ecdh_curve prime256v1;

关于android - React Native fetch() 在 Android 7 上抛出 'Network request failed',但在 Android 6 上工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45170365/

相关文章:

javascript - 将来自 fetch 调用的返回数据映射到导致错误的状态

ios - react native - ios - 启用更大的文本表单可访问性搞砸了一切

javascript - React Native 不从父应用程序调用 Android native 方法

react-native - 如何使用 React Native Stack Navigation 处理锁定方向

android - 如何从数据库中获取数据并显示在ListView上?

java - 当前 Activity Android的屏幕视频记录

android - 如何在除底部之外的线性布局周围添加边框?

android - TextView 中每行最多 "X"个字符?

android - 抬头通知有时不起作用

javascript - 如果没有特定的 key ,但应该是,如何处理错误