android - 升级到 Cordova 5.0 + cordova-android@4.0 后 Ajax 请求失败

标签 android ajax cordova

我最近升级到 Cordova 5.0(和 Cordova Android 4.0),从那以后,我的应用程序无法再访问外部资源。

我还有 <access origin="*" />在 config.xml 中(和以前一样),我还有 <uses-permission android:name="android.permission.INTERNET" />在 AndroidManifest.xml 中(和以前一样),但 ajax 调用被拒绝而没有解释(“textStatus”参数为“error”,“errorThrown”参数为 null,xhr.state() 返回“rejected”)。

我已经验证没有请求访问服务器,所以它似乎被 Android 停止了,但是日志没有给出任何解释为什么......

我可以从 Android 浏览器访问相关 URL,但不能从应用程序访问。

ajax 请求是通过调用 Backbone.js 的 Backbone.sync() 发出的。 ,最终调用 jquery 的 $.ajax()。我没有改变任何关于如何调用电话...只是升级了cordova。

在 Cordova 5.0 中是否对网络请求有新的要求/设置,或者与以前的 Cordova 版本有什么不同之处?

有谁知道我可以通过什么方式获得有关 Android 和/或 Cordova 拒绝请求的原因的更多信息?

最佳答案

我追踪到了 android@4.0.0 cordova 平台的罪魁祸首。它现在需要新的 cordova-plugin-whitelist插件。

可以安装

cordova plugin add cordova-plugin-whitelist

或添加

<plugin name="cordova-plugin-whitelist" spec="1" />

到config.xml,然后配置

<allow-navigation href="*" />

代替旧的,<access origin="*" />标记。

当这样的问题出现时,日志不再显示“白名单拒绝”错误消息,这有点烦人(这本来可以为我节省很多时间),但也许以后会出现。

关于android - 升级到 Cordova 5.0 + cordova-android@4.0 后 Ajax 请求失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30060534/

相关文章:

android - 如果编辑文本已填充输入,请更改其下划线颜色?

javascript - 通过ajax发送数组

ios - iOS-Cordova插件Tagmanager错误

java - 在 Android Native App 之前获取本地存储项目

javascript - 发送 FormData 到 ajax 时未捕获 TypeError 非法调用

iphone - 如何在 PhoneGap 0.8 中检测摇动手势?

java - Google Firebase 退出并忘记 Google 帐户

java - IllegalStateException Java Google map 标记

安卓初学者 : understanding MotionEvent actions

php - 使用 jQuery AJAX 从 PHP 返回多个值