我有一个问题。我正在为ios开发一个cordova应用程序,我尝试使用jQuery发出一个AJAX请求。外部服务器在cordova.plist中列入白名单(实际上我列入白名单*只是为了确定)。我确信该函数是正确的,因为我可以在chrome中手动调用它,并返回正确的数据。
但是在应用程序中运行时会返回以下标题数据:
{"readyState":0,"responseText":"","status":0,"statusText":"error"}
当crossDomain
更改为false
时,它会返回以下标头数据:
{"readyState":4,"responseText":"","status":404,"statusText":"error"}
$.ajax({
type: "POST",
url: url,
data: request,
crossDomain:true,
success:
function(data, textStatus, jqXHR){
console.log('succes :S');
console.log(data);
console.log(textStatus);
console.log(jqXHR);
},
error:
function(data, textStatus, jqXHR){
console.log('fail :(');
console.log(data);
console.log(textStatus);
console.log(jqXHR);
}
});
我希望有人可以告诉我什么是错的,因为我尝试了我能想到的一切。
编辑:谢谢你们,但我弄清楚问题是什么。该项目过去曾经有过加密,而且本地类中仍然存在一些代码残余。所以它包含或解密了一些URL。此主题现在可以关闭。答案 0 :(得分:1)
我回过头来回答了这个问题,并提供了修复Mootools和jQuery(以及一个vanilla javascript方法)的方法
答案 1 :(得分:0)
如果您正在使用,请使用IP或虚拟DNS而不是localhost。
答案 2 :(得分:-1)
您是否尝试过指定数据类型'JSONP',如下所示
dataType: 'jsonp'
这是js跨域调用的解决方案
看这篇文章
答案 3 :(得分:-1)
从HTML文件中删除以下元标记:
https://ssl.gstatic.com; style-src'self''unsafe-inline'; media-src *“>
希望这有效!!!