Другое решение, которое я нашел (особенно полезно, если вы хотите установить глобальное поведение), заключается в использовании метода $.ajaxsetup()
вместе с свойством statusCode
. Как и другие указатели, не используйте код статуса перенаправления (3xx
), вместо этого используйте код статуса 4xx
и обрабатываете клиентскую сторону с переадресацией.
$.ajaxSetup({
statusCode : {
400 : function () {
window.location = "/";
}
}
});
Замените 400
кодом состояния вы хотите справиться. Как уже упоминалось 401 Unauthorized
, может быть хорошей идеей. Я использую 400
, поскольку он очень неспецифичен, и я могу использовать 401
для более конкретных случаев (например, неправильные учетные данные). Поэтому вместо перенаправления непосредственно ваш backend должен возвращать код ошибки 4xx
, когда время ожидания сеанса и вы обрабатываете клиентскую часть перенаправления. Работает идеально для меня даже с фреймворками, такими как backbone.js