【问题标题】:React Native https axios resquest gets Network Error on Android but not iOSReact Native https axios resquest 在 Android 而不是 iOS 上出现网络错误
【发布时间】:2023-04-06 15:05:01
【问题描述】:

我正在构建我的 react 本机应用程序并使用后端 URL 作为http://123.123.123.123:port/,并且在开发过程中一切正常。但是当我构建我的应用程序并将其安装在 android 设备上时,它无法工作,我记得有人告诉我,android 默认情况下只允许 https 请求。所以我将 URL 更改为 Web 应用程序正在使用的 URL,它是 https://example.com/api/...(不是自签名 TSL 证书),现在 android 可以发送请求,但它们都返回为 Network Errors(当构建和在模拟器上运行时),但在 iOS 模拟器上运行良好。我是应用程序开发的新手,在网上找不到任何解决方案。也许我缺少一个选项?

我的 axios 设置,即发送请求:

const customAxios = axios.create({
        baseURL: baseURL,
        timeout: 6000,
    });

...

const response = await customAxios.post('/login', {
        email,
        password,
    });

错误堆栈:

Error: Network Error
    at createError (createError.js:16)
    at XMLHttpRequest.handleError (xhr.js:81)
    at XMLHttpRequest.dispatchEvent (event-target-shim.js:818)
    at XMLHttpRequest.setReadyState (XMLHttpRequest.js:574)
    at XMLHttpRequest.__didCompleteResponse (XMLHttpRequest.js:388)
    at XMLHttpRequest.js:501
    at RCTDeviceEventEmitter.emit (EventEmitter.js:189)
    at MessageQueue.__callFunction (MessageQueue.js:436)
    at MessageQueue.js:111
    at MessageQueue.__guard (MessageQueue.js:384)

https URL 正在 ios 和 web 应用程序上运行

【问题讨论】:

  • 你用的是哪个axios版本?
  • "axios": "^0.19.0"
  • axios 0.19.0 出现问题。如果你降级到 0.18.0 那么这个问题就会解决。
  • 那没有解决
  • 确保您的清单中有android:usesCleartextTraffic="true" <application> 标签,并添加了这些权限:<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

标签: javascript android react-native axios


【解决方案1】:

在您的清单文件中添加 android:usesCleartextTraffic="true" 内的应用程序标签。

<application
  xmlns:tools="http://schemas.android.com/tools"
  tools:replace="android:allowBackup"
  android:name=".MainApplication"
  android:label="@string/app_name"
  android:icon="@mipmap/ic_launcher"
  android:roundIcon="@mipmap/ic_launcher_round"
  android:usesCleartextTraffic="true">...
</application>

【讨论】:

  • 这也是我的问题!!必须添加 android:usesCleartextTraffic="true"。谢谢!
  • @VLazzarova 考虑 ^
猜你喜欢
  • 2022-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-23
  • 1970-01-01
  • 2021-07-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多