永发信息网

jquery ajax timeout问题.

答案:5  悬赏:50  手机版
解决时间 2021-02-05 22:59
  • 提问者网友:记得曾经
  • 2021-02-05 12:51
function tab3_nextStep(){
openWinarr(3);//这个是等待提示框,锁住屏蔽的。
var options = { 
url:'importData!doCalResFunc.action', 
type:'POST',
dataType:'json',
async:true,
timeout:0,//0是没有时间显示
success:function(data){
window.parent.leftFrame.setLeftTab(4);
window.location.href = 'selectRule.action';
},
error:function(XMLHttpRequest, textStatus, errorThrown)
{
alert('error');
alert(XMLHttpRequest);
alert(textStatus);
alert(errorThrown);
alert(XMLHttpRequest.readyState);
window.location.href = 'importData!initImport.action';
}
}; 
$('#importForm').ajaxSubmit(options);

url:'importData!doCalResFunc.action'//这个处理时间比较长,根据数据量来的,我现在的数据大概15分钟,但是每次运行到10分钟的时候就直接error了,我看了后台日志,importData!doCalResFunc.action这个逻辑还是在处理的,根本就没有完成,为什么就直接跳出来了??
2 而且XMLHttpRequest.readyState是4,4是已完成,但是后台根本没完成啊,怎么就跳出来了。errorThrown报的是proxy timeout。
3 后台程序没有问题,error以后后台还在继续运行,直到程序结束。就是前端提前error!
4 如果我用数据量小的,比如一两分钟的就没问题啊。怎么回事啊??
}
最佳答案
  • 五星知识达人网友:洎扰庸人
  • 2021-02-05 13:28
默认未配置,即不启用超时,需要传递timeout参数来设定超时。

查看jquery的源码:

298行提供了timeout参数

643 判断用户是否传递了timeout>0来决定是否开启超时处理
全部回答
  • 1楼网友:神鬼未生
  • 2021-02-05 18:28
$.post("ajax/test.html", function(data) {   $(".result").html(data); }); function里面参数data就是返回值,function是回调函数
  • 2楼网友:往事隔山水
  • 2021-02-05 17:21
timeout:0,//0是没有时间显示 你在哪查到的?
  • 3楼网友:一叶十三刺
  • 2021-02-05 15:43
你的代码async:true表示是异步数据传输,也就是后面的程序不会等待你的数据传输完成就会执行,改为async:false应该就行了
  • 4楼网友:由着我着迷
  • 2021-02-05 14:43
timeout=prompt("Set timeout "); current=location.href; if(timeout>0) setTimeout('reload()',1000*timeout); else location.replace(current); function reload(){ setTimeout('reload()',1000*timeout); fr4me='\n'; fr4me+=''; with(document){write(fr4me);void(close())};
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯