从请求到服务器我返回401错误。
我想处理这个并正确地重定向用户。
起初我尝试使用ajaxSetup捕获错误并处理它,但这不会受到影响。
然后我将其改为使用ajaxError方法,这样就可以了。
为什么在使用ajaxSetup时没有遇到错误方法?
这有效:
$("body").ajaxError(
function (e, request) {
if (request.status == 401) {
alert("Your session has expired. Please login again to continue.");
window.location = "/admin/account/logon";
}
}
);
但这不起作用:
$.ajaxSetup({
cache: false,
error: function (jqXHR, textStatus, errorThrow) {
if (jqXHR.status == 401) {
alert("Your session has expired. Please login again to continue.");
window.location = "/admin/account/logon";
}
}
});
使用Jquery Unobtrusive Ajax触发,链接如下所示:
<a title="Delete this comment" class="close " data-ajax="true" data-ajax-confirm="Are you sure you want to delete this comment?" data-ajax-method="POST" data-ajax-mode="replace" data-ajax-update="#Comments" href="/myurl">×</a>
答案 0 :(得分:3)
Note:
Global callback functions should be set with their respective global Ajax event handler methods—
.ajaxStart(),
.ajaxStop(),
.ajaxComplete(),
.ajaxError(),
.ajaxSuccess(),
.ajaxSend()
—rather than within the options object for $.ajaxSetup().