Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
刷新AJAX调用_Ajax - Fatal编程技术网

刷新AJAX调用

刷新AJAX调用,ajax,Ajax,我在cordova应用程序中有一个AJAX调用。在实际调用之前,我已经检查了internet连接的可用性。但在移动互联网中,有时在呼叫后的几秒钟内,连接就会丢失,因此设备无法读取来自web服务的任何回复。它转到Ajax调用的错误部分。我想再次调用Ajax,以便创建DOM 调用AJAX函数是 function callAjax(type, mainurl, dataType, data, successFunction, errorFunction){ if(isOnline == fa

我在cordova应用程序中有一个AJAX调用。在实际调用之前,我已经检查了internet连接的可用性。但在移动互联网中,有时在呼叫后的几秒钟内,连接就会丢失,因此设备无法读取来自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);

        }
    });
}

如果要在发生错误后重试,可以递归地重新调用函数,或执行类似操作以防止重试次数过多:

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次重试后停止。