Datatables 1.10.5 ajax 错误处理程序 - 访问 http 状态代码
Datatables 1.10.5 ajax error handler - Getting access to the http status code
我使用的是 Datatables 1.10.5,并且定义了 ajax 错误处理程序。我需要在错误触发时访问实际的 http 状态代码,以便我可以查看我的用户的会话时间是否已过期(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);
});
没有我需要的信息,或者至少我无法在任何传递的变量中找到它。
处理 xhr
event. When Ajax error occurs third argument json
would be null
and fourth argument xhr
would contain jQuery XHR 对象。您可以通过访问 xhr.status
属性.
来获取状态
另请参阅 $.fn.dataTable.ext.errMode
,它可用于指示 DataTables 不显示警报。
我已经能够在不覆盖全局 jQuery ajaxError
的情况下访问状态代码,方法是使用函数覆盖更具体的数据表 $.fn.dataTable.ext.errMode
:
$.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
中定义的任何内容之前
我使用的是 Datatables 1.10.5,并且定义了 ajax 错误处理程序。我需要在错误触发时访问实际的 http 状态代码,以便我可以查看我的用户的会话时间是否已过期(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);
});
没有我需要的信息,或者至少我无法在任何传递的变量中找到它。
处理 xhr
event. When Ajax error occurs third argument json
would be null
and fourth argument xhr
would contain jQuery XHR 对象。您可以通过访问 xhr.status
属性.
另请参阅 $.fn.dataTable.ext.errMode
,它可用于指示 DataTables 不显示警报。
我已经能够在不覆盖全局 jQuery ajaxError
的情况下访问状态代码,方法是使用函数覆盖更具体的数据表 $.fn.dataTable.ext.errMode
:
$.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