检测任何 ajax 调用何时失败

Detect when any ajax calls fail

本文关键字:何时 失败 调用 ajax 任何 检测      更新时间:2023-09-26

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

使用一段代码有什么方法,因此请检查页面上的任何ajax调用是否失败。 我不想去每个单独的调用并在最后添加一段代码。

基本上,这样我就可以提醒用户,如果他们失去连接或出现问题。

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

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

查看文档。

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

我希望这对你有帮助

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