我在cordova应用程序中有一个AJAX调用。在实际调用之前,我已经检查了互联网连接的可用性。但是在移动互联网中的某些时候,在进行呼叫之后,连接丢失了几秒钟,因此设备不从web服务读取任何回复。它转到Ajax调用的错误部分。我想再次调用此Ajax,以便创建DOM
调用AJAX函数是
function callAjax(type, mainurl, dataType, data, successFunction, errorFunction){
if(isOnline == false)
{
alert('Internet is not running. Please reconnect and try');
return 0;
}
$.ajax({
crossDomain: true,
async:false,
type: type,
url: mainurl,
dataType: "json",
data: data,
beforeSend:function(jqXHR,settings){
jqXHR.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
},
success: function(data) {
successFunction(data);
},
error: function(response) {
// alert(JSON.stringify(response));
errorFunction(response);
}
});
}
发布于 2015-03-13 19:09:14
如果你想在出错后重试,你可以递归地重新调用你的函数,或者像这样做,以防止过多的重试:
function callAjax(type, mainurl, dataType, data, successFunction, errorFunction){
if (isOnline == false) {
alert('Internet is not running. Please reconnect and try');
return 0;
}
function tryAjax(retryCount) {
$.ajax({
crossDomain: true,
async:false,
type: type,
url: mainurl,
dataType: "json",
data: data,
beforeSend:function(jqXHR,settings){
jqXHR.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
},
success: function(data) {
successFunction(data);
},
error: function(response) {
if (retryCount > 10) {
errorFunction(response);
} else {
tryAjax(retryCount + 1);
}
}
});
}
tryAjax(0);
}
https://stackoverflow.com/questions/29030461
复制相似问题