ajax - Datatables 1.10.5 ajax 错误处理程序 - 访问 http 状态代码

标签 ajax error-handling datatables http-status-codes

我正在使用 Datatables 1.10.5 并且定义了 ajax 错误处理程序。我需要在错误触发时访问实际的 http 状态代码,以便我可以查看我的用户的 session 时间是否已过期(HTTP 401)以及后端是否有问题,例如 HTTP 500 错误。现在技术说明总是 7。

如何从 ajax 事务中获取难以捉摸的 HTTP 状态代码?我在下面尝试过,但它没有触发。

$("#example").ajaxError(function(event, jqxhr, request, settings){
    alert("Failure HTTP Code:"+jqxhr.status);    
});

$.fn.dataTable.ext.errMode = 'throw';
$('#example').on('error.dt', function(e, settings, techNote, message) {
   console.log( 'An error has been reported by DataTables: ', message);
});

没有我需要的信息,或者至少我无法在任何传递的变量中找到它。

最佳答案

通过覆盖更具体的数据表 $.fn.dataTable.ext.errMode,我已经能够在不覆盖全局 jQuery ajaxError 的情况下访问状态代码有一个功能:

    $.fn.dataTable.ext.errMode = function (settings, tn, msg) {
      if (settings && settings.jqXHR && settings.jqXHR.status == 401) {
          window.location = window.location.origin + '/login';
          return
      }
      alert(msg) // Alert for all other error types; default DataTables behavior
    };

此示例显示了重定向到 401 状态代码的登录,但是,您可以对任何其他状态代码执行相同的操作。

最后要注意的是,您可能希望利用 DataTables statusCode 选项来处理状态代码,但您仍然需要覆盖 $.fn.dataTable.ext.errMode 如果您想绕过默认错误处理,因为它会在您在 statusCode

中定义的任何内容之前执行

关于ajax - Datatables 1.10.5 ajax 错误处理程序 - 访问 http 状态代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37352088/

相关文章:

php - AJAX、JSON 和 PHP 返回值问题

javascript - 与异步 javascript 同步时遇到问题

jquery - 如何使用jquery加载函数检索的html表单

javascript - window.onerror 不起作用

javascript - 使用 Vue 语法的 jQuery DataTables 子行

javascript - 无法初始化行重新排序插件 - rowReordering 不是函数

javascript - 测试 javascript 代码是否存在跨浏览器问题

ruby-on-rails - 使用 Ruby 正确处理 Stripe 错误和异常以实现一次性收费

python - 在python中将数据帧打印到.csv。 TypeError :must be convertible to a buffer

javascript - 如何将 jQuery 省略号应用于 jQuery 数据表行