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