我的应用程序使用捆绑在Android应用程序中的phonegap 1.7.0和jquery 1.7.1。我的html包含多个getJson()调用,这些调用成功运行,除了我提交表单时。
$('#proposalForm1').submit(function(event){
var formInput = $(this).serialize();
$('#loader').show();
$.getJSON("http://xxx.xxx.xxx.xxx:8282/Service004/user/jsProposalPage1.action", formInput,function(data){
$('#loader').hide();
if(data.serviceErrorMsg == ""){
window.location.replace("proposalDisplay.html");
}
else{
alert(data.serviceErrorMsg);
}
}).error(function(xhr){
$('#loader').hide();
alert(xhr.status);
navigator.notification.alert(
'Please try again later!', // message
doNothing, // callback
'Server Unavailable', // title
'Exit' // buttonName
);
});
return false;
});
有时它可以工作,但主要是它返回错误代码0.发出请求的应用服务器成功接收请求并调用Web服务。应用服务器成功收到来自Web服务的响应,但是phonegap应用报告了一个状态代码0.有人可以帮助我吗?当应用程序捆绑为黑莓使用Web工作而不是手机间隙时,存在同样的问题。测试了Android 2.3.3和Blackberry 9300曲线。
提前致谢,
答案 0 :(得分:0)
我建议将$ .getJSON调用切换为完整的$ .ajax()调用,并将超时设置为更长的时间。这可能是由于您的Web服务需要很长时间才能回复。
如果这不起作用,您可能需要将应用服务器配置为等待回复,直到它有响应。状态代码0表示“响应为空,(甚至没有返回标头)。这意味着连接已被接受,然后正常关闭(TCP FIN)。”
有很多事情可能导致这种情况,很可能是你的情况下超时,但防火墙也可能是罪魁祸首(不太可能,因为app服务器正在为其他请求工作)。