Ajax в веб-просмотре не отправляет данные на сервер - PullRequest
2 голосов
/ 01 сентября 2010

Ajax в webview работает нормально, если вы продолжаете его использовать, но если вы ничего не делаете, подождите около 10 минут и попробуйте использовать ajax для отправки данных на сервер, ничего не происходит. Я проверил на стороне сервера нет запроса от ajax в webview. Это ошибка веб-просмотра или я что-то напутал?

Код ajax, который я использую (jQuery $.ajax с некоторыми моими собственными функциями):

function extendBaseAjax(paramObj){
if(typeof(paramObj['maxRetryTimes'])=='undefined'){
    paramObj['maxRetryTimes']=0;
}
var maxRetryTimes=paramObj['maxRetryTimes'];
var retryCounter=0;
var error=paramObj['error'];  
var errorHandler=function(XMLHttpRequest, textStatus, errorThrown){
    if(textStatus=='timeout'){
        retryCounter+=1;
        if(retryCounter<maxRetryTimes){
            $.ajax(paramObj);
        }else{
            error(textStatus);//timeout", "error", "notmodified" ,"parsererror"
        }
    }else{
        error(textStatus);
    }
}


var success=paramObj.success;

var successHandler=function(data){
    if(typeof(data)=="string"){
        data=eval('('+data+')');
    }
    success(data);
    }

    paramObj['success']=successHandler;
    paramObj['error']=errorHandler;
    paramObj['date']=new Date().getTime();//no cache
    $.ajax(paramObj);
}

И большинство моих ajax используют так:

        extendJsonpAjax({
        url:url,
        data:data,
        timeout:timeout,
        maxRetryTimes:maxRetryTimes,
        success:function(data){
            var resultNumber=data['resultNumber'];
            totalPageNumber=resultNumber+1
            totalPageNumber=Math.ceil(resultNumber/limit);
            executeCallBack(data,currentPageNumber,totalPageNumber);
            isAjaxCompleted=true;
        },
        error:function(textStatus){
            errorCallBack(textStatus);
            isAjaxCompleted=true;
        }
    });
...