В качестве состояния ответа на вызов ajax после перенаправления будет 200 вместо 302. Не остается опции для идентификации перенаправления из состояния.
Вместо изменения кода состояния путем применения собственного фильтра (порядок доExceptionTranslationFilter
), разрыв цепочки фильтров путем повторного выброса исключения.
Простой способ -
1. Добавьте этот скрытый div на странице входа.
<div style="display:none">LOGIN_PAGE_IDENTIFIER</div>
И на каждой странице JSP (или, если у вас есть какие-либо config.js, которые вы включаете в каждую страницу jsp, добавьте туда код ниже)
<script type="text/javascript">
$(document).ajaxComplete(function (event, xhr, settings) {
if(xhr.responseText.indexOf("LOGIN_PAGE_IDENTIFIER") != -1)
window.location.reload();
});
</script>
PS :
О вашей озабоченности по поводу вашего AjaxTimeoutRedirectFilter
Если вы получаете статус 901 в ответе ajax, тогда
$(document).ajaxComplete(function (event, xhr, settings) {
if(xhr.status == 901)
window.location.reload();
});
добавьте это на каждую свою страницу JSPдолжен решить вашу проблему.