繁体   English   中英

axios 请求在 Android(Cordova 容器)上抛出“网络错误”

[英]axios requests throw “Network Error” on Android (Cordova container)

我已经将一个Vue应用程序封装到一个 Cordova 容器中,并通过 Android Studio 部署在 Android 上。 发送到我的服务器的每个请求都失败,并显示消息Error: Network Error

这在浏览器或 iO 中不是问题。

我研究了这个问题并尝试了各种解决方案:

  1. 我已经安装了cordova-plugin-whitelist插件并按照文档中的描述进行了配置

  2. 我在AndroidManifest.xml文件中设置了权限:

<edit-file mode="merge" parent="/manifest/uses-permission" target="AndroidManifest.xml">
  <uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</edit-file>
  1. 我在元中设置了一个"Content-Security-Policy"标签:
<meta data-n-head="1" http-equiv="Content-Security-Policy" content="default-src * 'unsafe-inline' 'unsafe-eval'; script-src * 'unsafe-inline' 'unsafe-eval'; connect-src * 'unsafe-inline'; img-src * data: blob: 'unsafe-inline'; frame-src *; style-src * 'unsafe-inline';">
  1. 我已按照此答案中的说明将我的服务器地址从localhost:3000更改为我服务器的 IP 地址: axios 和 android 模拟器的网络错误- 我还尝试通过本地隧道运行它以获得“真实”的 API URL - 相同问题

  2. 按照上面线程中的指示,我还添加了标题:

"Content-Type": "application/x-www-form-urlencoded",
  Accept: "application/json"

仍然Error: Network Error 我几乎可以肯定这与权限有关,但我无法再配置以使其正常工作。

我正在使用Cordova 10Android 10.0+设备上对此进行测试。

在0.20.0 Axios公司

我找到了解决我的问题的方法。 看起来 Android 默认不允许对 http 的请求,如该线程中所述: Internet 权限在 oreo 和 pie 中不起作用

将 localtunnel 更改为https为我解决了这个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM