【发布时间】: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