2013-02-28 266 views
0

我有一个沉重的应用程序,一切都在阿贾克斯。失败的http请求

现在有一次,当一个页面加载时,有10多个Ajax请求,其中一些对我来说因为一个未知的原因而随机失败。

无论如何要知道为什么这些请求失败?

我可以捕获错误里面的错误:{}情况下,我应该再次调用Ajax函数在失败的情况下,或者它不是一个好主意(避免循环)?

这是我用它来处理我的所有请求Ajax的功能:

function ajax(aurl,dataType,requestData,successListener,compelteListener,errorListener,async) { 

var $xhr=null; 
async = typeof async !== 'undefined' ? async : true; 

if($.ajax) { 
    $xhr=$.ajax({ 
     type: 'post', 
     url : aurl, 
     async : async, 
     dataType : dataType, 
     data:requestData, 
     success: function(response){ 
      checkAjaxResponse(null,response,successListener,errorListener); 
     }, 
     complete:compelteListener, 
     error:function(response){ 
      checkAjaxResponse(null,response,errorListener); 
     } 
    }); 
}else { 
    alert("jquery not found .."); 
} 
return $xhr; 

}

更新1:

如果我在里面的响应做的console.log错误,我得到以下内容:

{"readyState":0,"responseText":"","status":0,"statusText":"error"} 

更新2:

望着Apache日志我看到了很多的:

[notice] Parent: child process exited with status 255 -- Restarting. 

我也修改了我的Ajax请求:

error:function(response){ 
ajax(aurl,dataType,requestData,successListener,compelteListener,errorListener,async); 
} 

但是,这可能会造成系统崩溃,如果阿贾克斯总是失败...

更新#3

我认为它更多的是WAMP问题,因为我没有这些生产错误。

无论如何,谢谢大家的努力!

+0

请告诉我回应说,如果你检查使用Chrome或拉琴? – cgatian 2013-02-28 12:41:36

+3

请求的网址是否在同一个域中? – 2013-02-28 12:45:42

+0

@cgatian更新了这个问题,并且是在同一个域上的anoop。 – Tarek 2013-02-28 12:47:10

回答

0

问题与Windows上的Apache有关,原因不明服务器随机崩溃。

我发现栈上的httpd相关的一些信息(1MB Windows默认VS Linux上8MB默认)

我们的生产是linux和开发在Windows上。

修改的功能如下:

error:function(response){ 
       counter++; 
       checkAjaxResponse(null,response,errorListener); 
       if(counter > 5) { 
        jAlert(get_label('technical_error') + '<br><br>' + get_label('function_called')+ aurl,get_label('attention_loading')); 
        setLoading(false); 
       } else { 
        return ajax(aurl,dataType,requestData,successListener,compelteListener,errorListener,async,counter); 
       } 
      }