我使用以下代码在Cordova应用程序中发出ajax请求
$.ajax(rssUrl, {ct: id, crossDomain: true}).done(
function (data, textStatus, jqXHR) {
var object = $(this); //extracting context
var cntxt = object[0].ct;
rssReader.parse(data, textStatus, jqXHR, true, cntxt)
}
)
.fail(alErr);
此请求在纹波仿真器中工作正常,但在物理android设备上进行构建我不断获取alErr输出(jqXHR对象的status和readyState为0)
具体而言,这不适用于http://www.footballnewsguru.com/feeds/posts/default/-/Liverpool?alt=json&max-results=10 它适用于我正在访问的其他Feed
来自jQuery Ajax - Status Code 0?的第一个答案似乎不适用于我的应用,因为CSP在模拟器中允许请求,因此没有DNS问题。
我一直在寻找解决方案几个小时,但主要是关于在发送ajax请求之前浏览器刷新或表单提交,但两者都不适用于我的情况。
[编辑]
<meta http-equiv="Content-Security-Policy" content="default-src 'self' * data: gap: https://ssl.gstatic.com 'unsafe-inline' 'unsafe-eval'; img-src * data:; style-src 'self' 'unsafe-inline';">
这是CSP的元数据。 编码URL也不起作用。
答案 0 :(得分:0)
在这里找到答案: Ajax request failing in cordova/phonegap app on real device
最后一个答案通过添加
为我工作<access origin="http://*" />
<access origin="https://*" />
到config.xml,仍然想知道为什么
<access origin="http://www.footballnewsguru.com" />
无效。