IOS phonegap AJAX升级后停止工作

时间:2017-03-22 16:04:27

标签: jquery ios ajax cordova

我最近将我的IOS和xcode更新到最新版本,现在我构建的所有项目都不再有效。我具体的问题是让AJAX调用与我的网站一起工作以进行数据库访问。

编码方面没有任何改变,这是ajax调用的一个例子:

$.ajax({
    method: "POST",
    url: "http://myurl.com/subdirectory/ajax.php",
    data: {
        username: "username",
        device_id: phoneUUID
    },
    success: function(data) {
        // success

    },
    error: function(e) {
        navigator.notification.alert('failure' + JSON.stringify(e), alertDismissed, 'Attention', 'Close');
    }
});

我收到的警告说

Failure{"readyState":0,"status":0,"statusText":"error"}

我已经卸载并重新安装了我的白名单插件,重新创建了我的整个项目,并手动移动了所有代码,只需一个简单的AJAX调用,从头开始一个全新的项目,确保我的<allow-navigation href="http://myurl.com/" /> <allow-navigation href="http://*/*" /> <allow-navigation href="https://*/*" /><access origin="*" />在config.xml中设置,并修改了我的元Content-Security-Policy。

当我使用

之外的任何内容修改CSP时

default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">

javascript完全停止运行。我已经尝试过人们在类似问题中给出的答案的例子,但我没有遇到与最近的变化相关的解决方案。

1 个答案:

答案 0 :(得分:0)

我通过调整内容安全策略标记来实现它。

我将<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap:..."替换为<meta http-equiv="Content-Security-Policy" content="default-src * data: gap:...",这就是诀窍。

由于某些原因,较旧的内容示例和格式设置无法正常运行。