У меня есть сценарий, когда мне приходится обрабатывать аутентификацию запросов ajax, используя "Аутентификация форм". Основываясь на некоторых поисках и помощи из моего предыдущего сообщения stackoverflow, я решил использовать метод, описанный в здесь.
Идея состоит в том, чтобы отправить ответ 401 для неавторизованных запросов, а затем обработать это в обработчике ошибок AJAX. Таким образом, у меня есть обработчик ошибок AJAX на моей странице ASP.NET MVC3 Layout, который перенаправляет браузер на страницу входа, когда он получает ответ 401 на запросы без аутентификации ajax. Вот обработчик ошибок ajax.
$(document).ajaxError(function (event, jqXHR, ajaxSettings, thrownError) {
if (jqXHR.status == "401") {
window.location.replace(loginUrl);
}
....
});
Все это хорошо работает на моем локальном сервере IIS 7.5. Но на сервере, где размещен мой сайт, к сожалению, я получаю базовое всплывающее всплывающее окно по неаутентифицированным запросам ajax (например, время ожидания сеанса), до того, как обработчик ошибок AJAX запускается и перенаправляет браузер на страницу входа. Когда я отменяю всплывающее окно "Authentication Required", нажимая кнопку "Отмена", затем запускается обработчик ошибок AJAX, и я перенаправляется на страницу входа.
Итак, почему браузер показывает всплывающее окно аутентификации перед запуском обработчика ошибок AJAX?
Изменить: Сервер хостинга работает с IIS 6.