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;
}
});