![]() |
|
||||||||||
|
|||||
|
Друзья всех приветствую. Не имел ли то-нибудь дело с авторизацией HTTP BASIC AUTH посредством AJAX (XMLHttpRequest). Проблема в том, что не удается добиться корректную работу данного метода в Opera 9xx.
В отличие от IE и FIREFOX, даже если логин и пароль правильные, опера всегда выводит стандартное окно для ввода логина и пароля. Вот код который я использую. Возможно существуют другие методики или пути, которые работают корректно? function getHTTPObject() { // Создаем XMLHttpRequest объект
if (typeof XMLHttpRequest != 'undefined') {
return new XMLHttpRequest();
}
try {
return new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
return new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
return false;
}
// Отправляем данные для авторизации
function js_otp_auth()
{
var http = getHTTPObject();
var username = top.document.getElementById('user_id').value;
var password = top.document.getElementById('otp_password').value;
http.open("get", '/wps/themes/html/apache_redir.html', false, username, password);
http.send("");
if (http.status == 200) {
return true;
} else {
return false;
}
return false;
}
|
|
|||||
|
.grin! wuz here
|
статус присваивается не сразу. например:
http.onreadystatechange = function(){
// только при состоянии "complete"
if (this.readyState == 4) {
// для статуса "OK"
if (this.status == 200) {
// здесь идут всякие штуки с полученным ответом
} else {
alert("Не удалось получить данные:\n" +
this.statusText);
}
}
}
__________________
Breakcore them all! |
|
|||||
|
Спасибо. А как всетаки с оперой быть?
|
|
|||||
|
.grin! wuz here
|
ответ выше. если у вас просто опера не проходит аутентификацию, проверьте все возможные заголовки на UTF-8
__________________
Breakcore them all! |
|
|||||
|
Проверял заголовки. В опере до версии 9.24 почему то просто отсекался заголовок 'Authorization' т.е броузер его просто не слал серверу и все. Затем скачал 9.24. Там ситуация выправилась и заголовок уже отсылался серверу. Но попрежнему вылетает окно для ввода логина и пароля. Такое ощущение что опера шлет корректные заголовки НО НЕ ПРИНИМАЕТ куку от сервера.
|
|
|||||
|
.grin! wuz here
|
Ошибки в коде я указал. Возможную причину тоже.
(Однако, то что сервер принимает правильно утф-8, как я понял, так никто и не проверял) В отсутствии остальной конкретики и в виду того что с телепатией у меня плохо, ничем не могу помочь.
__________________
Breakcore them all! |
|
|||||
|
Ок спасибо. Я все более детально проверю и вернусь тогда.
Еще раз спасибо что откликнулись |
|
|||||
|
Итак. В коде нет никакой ошибки ибо скрипт работает в синхронном режиме, что определяется соответсвующим параметром в методе open. Заголовки Выводил в браузере и на сервере тоже в файл запысывал (JS обращался к PHP скрипту а тот в свою очередь заголовки которые браузер передавал серверу писал в файл), все в норме вроде.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 13:29. |
|
|
« Предыдущая тема | Следующая тема » |
|
|