我已经被困在这里很长一段时间了。我正在开发一个带有phonegap的移动应用程序。我用android 4.0.4测试了应用程序,它运行得非常好。但是,当我在2.2.3上测试时,AJAX结束并且错误状态为:
就绪状态= 0
HTTP状态= 0
我试图将超时增加到很长但仍然以该结果结束。我不确定是什么问题,但我开发了另一个使用相同的ajax调用的应用程序,它在android 2.2.3上工作正常,但是这个时间的不同之处在于它调用了一个SAML URL(身份提供者)。
代码如下:
$.ajax({
url: "...."+Math.random(),
type: "POST",
data: {
j_username: uname,
j_password: pword
},
cache: false,
timeout: (100*1000),
success: function(data, textStatus, jqXHR){
var contentType = jqXHR.getResponseHeader('Content-Type');
if (contentType == 'application/atomsvc+xml'){
}else{
alert(".....");
// clearTimeout(timer);
$.mobile.hidePageLoadingMsg();
enableAllButtons();
}
},
error: function(jqXHR, textStatus, errorThrown){
// clearTimeout(timer);
alert("Error Thrown : " + errorThrown);
alert("status : " + jqXHR.status + " " + jqXHR.statusText);
alert("ready state : " + jqXHR.readyState);
alert(".......");
$.mobile.hidePageLoadingMsg();
enableAllButtons();
}
});
真的希望有人能帮助我。
非常感谢你提前提出的意见。
此致
阿曼达
答案 0 :(得分:0)
除了一件事
之外,代码似乎没问题您在网址中使用Math.random()
..您还使用了cache:false
尝试从URL中删除Math.random()
,而jQuery Cache使用相同的东西。
此外,当您获得readyState = 0
时,它将成为CrossDomain问题。在AJAX选项中使用JSONP(dateType:'JSONP'
)