检测任何 ajax 调用何时失败

Detect when any ajax calls fail

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

有一段代码可以检查页面上 ajax 调用的 any 是否失败。我不想去每个单独的电话并在最后添加一段代码。

基本上这是为了在用户失去连接或出现问题时提醒用户。

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

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

查看 documentation

我建议您覆盖原来的 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);

}
$(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);
        }
     }
   });
});

希望对您有所帮助