Управляйте базовой аутентификацией HTTP, используя JavaScript - PullRequest
3 голосов
/ 21 октября 2010

Я хотел бы проверить, защищен ли URL-адрес базовой аутентификацией Http с использованием JavaScript. Вот что у меня есть:

  function showFailure(){ alert("FAILED ") }
  function showSuccess(){ alert("SUCCESS") }

  var myRequest = new Request({
    url: 'http://localhost/access_protected_HTTP_BASIC', 
    method: 'get', 
    onSuccess: showSuccess,
    onFailure: showFailure
  }).send();

Но это фактически открывает всплывающее окно входа в браузер для доступа к ресурсу. Есть ли способ не вызвать это всплывающее окно?

Спасибо!

Примечание: я использую mootools в этом примере, но я бы взял любой пример javascript, который делает свое дело:)

Ответы [ 2 ]

7 голосов
/ 21 октября 2010

На основе ответа на аналогичный вопрос вы можете вручную передать имя пользователя и пароль при отправке запроса.(И в соответствии с MooTools Docs параметры user и password делают именно это.)

Далее, XMLHttpRequest spec говорит:

Если аутентификация не пройдена, Авторизация отсутствует в списке заголовков запроса автора, имя пользователя запроса не равно нулю, а пароль запроса не равен нулю, пользовательские агенты не должны запрашиватьконечный пользователь для его имени пользователя и пароля.

Это означает, что вы можете установить фиктивное имя пользователя и пароль, и браузер не будет запрашивать пользователя.Если вы получите код состояния 401, это означает, что требуется авторизация.

0 голосов
/ 21 октября 2010

все, что вам нужно сделать, это добавить заголовок Authorization: Basic *Base64EncodedString*, где *Base64EncodedString* равен base64Encode(username+':'+password), должно быть достаточно легко найти функцию base64encode. YMMV

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...