Как запретить браузеру вызывать всплывающее окно Digest auth и обрабатывать ошибку 401 с помощью Jquery? - PullRequest
0 голосов
/ 20 июня 2019

Мне нужно отправить запрос на авторизацию, используя digest auth . Я успешно реализовал это с помощью jquery. Однако, когда я получаю 401 error digest auth , открывается всплывающее окно браузера , и jquery ajax error callback не вызывается.

Ответы [ 2 ]

0 голосов
/ 20 июня 2019

"Для этого вопроса я просто хочу знать, использую ли я дайджест-проверку подлинности, как я могу предотвратить всплывающее окно браузера."

К сожалению, это невозможно. Для всех событий запроса Ajax (loadstart, load, loadend, progress, error, abort, timeout) и обработчик событий onreadystatechange, только loadstart запускается до всплывающее окно браузера для дайджеста (на самом деле оно запускается даже до того, как сервер получит запрос).

Таким образом, с точки зрения JavaScript на стороне браузера, до всплывающего окна дайджеста ничего не вызывается, что означает, что мы ничего не можем сделать, чтобы предотвратить всплывающее окно.

0 голосов
/ 20 июня 2019

Измените ответ сервера, чтобы он не возвращал 401. Вместо этого верните код 200 и обработайте его в своем клиенте jQuery.Измените метод, который вы используете для авторизации, на пользовательское значение в вашем заголовке.Браузеры отобразят всплывающие окна для Basic и Digest.Вы должны изменить это как на клиенте, так и на сервере.

headers : {
  "Authorization" : "BasicCustom"
}

Смотрите здесь: Используйте базовую аутентификацию с jQuery и Ajax

...