axios 请求在 Android 上抛出"Network Error"(Cordova 容器)



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

这不是浏览器或iOs中的问题。

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

  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. 我在meta中设置了一个"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。我几乎可以肯定这与权限有关,但我没有什么可以配置的了。

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

Axios于0.20.0发布。

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

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

相关内容

最新更新