http请求失败

时间:2013-02-28 12:38:36

标签: javascript jquery ajax httprequest

我有一个沉重的应用程序,其中一切都在ajax。

现在有时候当一个页面加载时会有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); 
}

但如果Ajax总是失败,那可能会导致系统崩溃......

更新#3

我认为它更像是一个WAMP问题,因为我没有那些生产错误。

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

1 个答案:

答案 0 :(得分:0)

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

我在httpd上发现了一些与堆栈有关的信息(默认情况下1mb windows默认情况下vs 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);
                }
            }