Phonegap 和 Android 4.4.2 白名单不起作用

Posted

技术标签:

【中文标题】Phonegap 和 Android 4.4.2 白名单不起作用【英文标题】:Phonegap and Android 4.4.2 whitelist not working 【发布时间】:2016-01-11 12:22:16 【问题描述】:

我有一个 PhoneGap 应用程序,它从我的服务器中获取数据,并且我已经设置了一切以使用跨域资源。

它在 android 4.0.3 上可以正常运行,然后我在 Android 4.4.2 上进行了测试,但它不起作用!我收到的 ajax 调用

发生错误: 0 SecurityError: 未能对“XMLHttpRequest”执行“打开”:拒绝连接到“domain.com”,因为它违反了文档的内容安全策略。

我的 config.xml 文件包含以下内容:

<plugin name="cordova-plugin-whitelist" version="1"/>
<access origin="http://domain.com/app-filelanding/*" />
<allow-intent href="http://*/*"/>
<allow-intent href="https://*/*"/>
<allow-intent href="tel:*"/>
<allow-intent href="sms:*"/>
<allow-intent href="mailto:*"/>
<allow-intent href="geo:*"/>

我的 index.html

上有这个元标记
<meta http-equiv="Content-Security-Policy"
      content="default-src 'self' http://www.domain.com 'unsafe-inline' data: gap: https://ssl.gstatic.com;
               media-src *;
               connect-src 'http://www.domain.com/'">

这在我的脚本上:

$(document).on("mobileinit", function()
    $.support.cors = true;
    $.mobile.allowCrossDomainPages = true;
);

【问题讨论】:

您可以尝试删除“domain.com”周围的引号吗? 【参考方案1】:

您似乎混合了 domain.com 和 www.domain.com - 尝试将您的内容安全策略更改为引用 domain.com 而不是 www.domain.com

【讨论】:

以上是关于Phonegap 和 Android 4.4.2 白名单不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Phonegap : iOS 和 Android 应用更新通知

在 Cordova / PhoneGap 中生成 iOS 和 Android 图标

Android 版 PhoneGap 截图插件

在 android 和 IOS 中运行 phoneGap 应用程序需要进行啥配置?

PhoneGap - 为啥 Android 虚拟设备不显示更改?

使用 Phonegap 和 Android 的地理位置