刷新AJAX调用
我在cordova应用程序中有一个AJAX调用。在实际调用之前,我已经检查了internet连接的可用性。但在移动互联网中,有时在呼叫后的几秒钟内,连接就会丢失,因此设备无法读取来自web服务的任何回复。它转到Ajax调用的错误部分。我想再次调用Ajax,以便创建DOM 调用AJAX函数是刷新AJAX调用,ajax,Ajax,我在cordova应用程序中有一个AJAX调用。在实际调用之前,我已经检查了internet连接的可用性。但在移动互联网中,有时在呼叫后的几秒钟内,连接就会丢失,因此设备无法读取来自web服务的任何回复。它转到Ajax调用的错误部分。我想再次调用Ajax,以便创建DOM 调用AJAX函数是 function callAjax(type, mainurl, dataType, data, successFunction, errorFunction){ if(isOnline == fa
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);
}
});
}
如果要在发生错误后重试,可以递归地重新调用函数,或执行类似操作以防止重试次数过多:
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);
}
我也考虑过这个选项,但在某些情况下,这可能会导致无限循环situation@MiteshBaviskar它不会导致无限循环。它将在10次重试后停止。