Базовая аутентификация с XMLHTTPRequest - PullRequest
17 голосов
/ 30 октября 2009

Я пытаюсь использовать XMLHTTPRequest для получения обновления в твиттере.

var XMLReq = new XMLHttpRequest();
XMLReq.open("GET", "http://twitter.com/account/verify_credentials.json", false, "TestAct", "password");
XMLReq.send(null);

Однако, используя мой сниффер, я не вижу пропускаемых заголовков авторизации. Следовательно, я получаю сообщение об ошибке 401 от Twitter.

Учетная запись и пароль введены правильно.

Кто-нибудь пытался это сделать? Кто-нибудь может дать мне несколько советов? Спасибо.

Ответы [ 3 ]

57 голосов
/ 09 апреля 2015

Вам просто нужно добавить заголовок авторизации, имя пользователя и пароль в строку в кодировке base64 следующим образом.

XMLReq.setRequestHeader("Authorization", "Basic " + btoa("username:password"));
9 голосов
/ 27 ноября 2013

В запросах между источниками необходимо явно установить флаг withCredentials, если вы хотите, чтобы отправлялись учетные данные пользователя.

См. http://www.w3.org/TR/XMLHttpRequest/#the-withcredentials-attribute (где учетные данные пользователя включает проверку подлинности HTTP)

3 голосов
/ 22 ноября 2009

Из-за политики Origin вы не можете сделать запрос XMLHttpRequest из своего домена в другой домен. Например. Вы не можете использовать http://twitter.com/... URL, если ваш скрипт не был загружен из twitter.com. Если ваш скрипт загружен из http://localhost/, AJAX-запрос также должен перейти на localhost.

...