我最近将我的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完全停止运行。我已经尝试过人们在类似问题中给出的答案的例子,但我没有遇到与最近的变化相关的解决方案。
答案 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:..."
,这就是诀窍。
由于某些原因,较旧的内容示例和格式设置无法正常运行。