Ionic 3 应用程序停止发出网络请求
Posted
技术标签:
【中文标题】Ionic 3 应用程序停止发出网络请求【英文标题】:Ionic 3 app stopped making network request 【发布时间】:2021-01-05 05:46:40 【问题描述】:我不知道为什么不能进行 ajax 调用 我删除了 node_modules 然后做了:npm i 然后我删除了平台/android
并制作:离子科尔多瓦运行 android 网络仍然无法正常工作(在设备或模拟器上)
我已经切换到 master 分支,它没有受到影响,但仍然面临同样的问题
但它在 ios 和 web 上运行良好
【问题讨论】:
【参考方案1】:我将Android的sdk升级到29,从sdk 28开始,你必须在节点Application的AndroidManifest.xml文件中添加属性这个属性:
android:usesCleartextTraffic="true"
因为我正在对 http 而不是 https url 进行 ajax 调用。
【讨论】:
但是,这种方法不安全,如果他控制主机,或者如果是cdn,我建议他启用SSL,他将其下载并打包到应用程序中。 @BastienBastien 我知道我应该这样做,但是如果我们迁移到 https,有些遗留的东西会破坏,不要问我为什么【参考方案2】:Android 需要白名单插件 (cordova-plugin-whitelist) 才能在应用程序外部(向互联网)发出请求,您确定已包含它吗?我也曾经遇到过类似的问题,插件在我的config.xml中,但是,当我使用cordova@9.0.0添加平台android时没有检测到它。我的解决方案是将插件标签移动到配置中的其他位置。
如果您有任何疑问,请参阅此https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-whitelist/,以了解如何使用该插件。
这里的配置将导航到某处的白名单:
<allow-navigation href="mywebsite.com/coolpage.php" />
以及此处将请求列入白名单的配置:<access origin="mywebsite.com/api.php" />
您可以通过检查日志来检查是否安装了白名单插件,当您添加平台时,请确保您看到installing cordova-plugin-whitelist
并且没有出现错误。
祝你好运!
【讨论】:
感谢您的意见,但我已经使用了白名单插件,但没有用。由于我在自己的答案中提到的原因,我不得不将属性 usesClearTextTraffic 添加为 true以上是关于Ionic 3 应用程序停止发出网络请求的主要内容,如果未能解决你的问题,请参考以下文章
如何在ionic中为https请求添加android ssl证书?