【问题标题】:axios requests throw "Network Error" on Android (Cordova container)axios 请求在 Android(Cordova 容器)上引发“网络错误”
【发布时间】:2020-12-27 13:24:12
【问题描述】:

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

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

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

  1. 我已经安装了cordova-plugin-whitelist 插件并按照documentation 中的说明进行了配置

  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 地址:Network error with axios and android emulator - 我还尝试通过本地隧道运行它以获得“真实” API URL - 同样的问题

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

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

还是Error: Network Error。 我几乎可以肯定这与权限有关,但我无法配置其他任何东西来使其工作。

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

Axios 于 0.20.0.

【问题讨论】:

  • 你找到解决这个问题的方法了吗?

标签: android cordova


【解决方案1】:

我找到了解决问题的方法。看起来Android默认不允许请求http,如该线程所述:Internet permission not working in oreo and pie

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

【讨论】:

    猜你喜欢
    • 2018-11-05
    • 2018-08-14
    • 2018-06-21
    • 1970-01-01
    • 2021-04-16
    • 2022-11-10
    • 2020-03-06
    • 2022-09-25
    • 2021-04-21
    相关资源
    最近更新 更多