检测任何ajax调用何时失败

时间:2015-01-20 03:45:07

标签: javascript jquery ajax http post

我有一个网站,用户可以在这个网站上处理项目,他们的工作会自动保存到我的数据库中。在我的网站上每隔几秒钟发生一次ajax(post)调用(通常在jquery中)来检查权限和什么不是。

有一段代码是有任何方法,所以检查页面上的任何的ajax调用是否失败。我不想要去每个电话,并在最后添加一段代码。

基本上这是我可以在用户丢失连接或出现问题时提醒用户。

3 个答案:

答案 0 :(得分:2)

您可以使用 jQuery 事件ajaxError。只要 Ajax 请求因错误而完成,它就会被触发:

$(document).ajaxError(function() {
  console.error('Error');
});

查看documentation

答案 1 :(得分:0)

我建议你覆盖原来的jquery ajax函数。

var $_ajax = $.ajax; // reference to original ajax

$.ajax = function(options) {

     if (options.error) {

        // reference to original error callback
        var originalErrorHandler = options.error;

        var errorHandlerContext = options.context ? options.context : $;


        var customErrorHandler = function(xhr, status, error) {

          // notify error to your user here

        };

        // override error callback with custom implementation           
        options.error = customErrorHandler;
    };

     return $_ajax.apply($, arguments);

}

答案 2 :(得分:0)

$(document).ready(function(){   
   //ajax setup settings
  $.ajaxSetup ({
     cache: false,
     async: false,
     statusCode: {
        404: function() {
            alert('Page not found!');
        },
        500: function(jqXHR, textStatus) {
            alert('Server side:  ' + textStatus);
        }
     }
   });
});

我希望这可以帮到你