2012-08-28 68 views
1

我有这个功能,并且它在大多数时间都能正常工作,但是如果发生不规则的事情,客户端将不知道为什么加载gif总是显示。Ajax请求 - 超时错误/警告

我想知道如果我可以定义20秒超时,如果Ajax请求是不成功的加载GIF消失,显示如“连接丢失”或类似的错误:

function ajaxrequest(){ 
       var params = []; 
       for (var i=0; i < submit.length; i++) { 
        var ele = submit[i]; 
        params[i] = ele + '=' + $('#' + ele).attr('value'); 
       } 
       params = params.join('&'); 
       $(".agendarleft").html("<center><img src='skins/{VAL_SKIN}/styleImages/iloading.gif'></center>"); 
       $.ajax({ 
       type: "GET", 
       url: "ajaxload/como.php", 
       data: params, 
       success: function() { 
       $(".agendarleft").html("<center><div style='height:50px'><h2>Enviado! Seremos breves na resposta.</h2></div></center><br/><img src='../skins/Sandbox_Light/styleImages/after1.jpg'/></center>"); 
       } 
       }); 
      } 

回答

2

请点击这里超时参数

http://api.jquery.com/jQuery.ajax/

演示:http://jsfiddle.net/u3f9C/183/

如果茶中断超时到1000你会看到错误。现在,它应该显示超时值,因为超时值非常低,甚至在尝试连接到url之前超时。

+0

如何错误的参数处理?它什么时候发生?我应该使用“超时”还是“错误”? – skills

+0

@skills我已经编辑了我的答案,演示 –

+0

在上例中,无论请求失败(500或其他),微调器都会无休止地旋转。如果是这样的话,那不是一个真正的超时问题,而是一般的错误处理问题,正如我在我的回答中提到的那样。如果你的服务器没有响应,并且你想在一段时间后手动超时请求,Sones Dabhis的答案是完全正确的。 – trueunlessfalse

0

您可以设置一个错误回调,像这样:

$.ajax({}).error(function(){ // remove spinner or do something else }); 

参见:http://api.jquery.com/jQuery.ajax/

或者在您的要求上面的风格:

$.ajax({error: function() {}, success: function() {} });