Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Работа над сайтом > HTML/DHTML/CSS/JS/VB

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 22.01.2008, 12:01
igor82 вне форума Посмотреть профиль Отправить личное сообщение для igor82 Найти все сообщения от igor82
  № 1  
Ответить с цитированием
igor82

Регистрация: Apr 2002
Адрес: Россия, Воронеж
Сообщений: 121
Отправить сообщение для igor82 с помощью ICQ Отправить сообщение для igor82 с помощью Yahoo
По умолчанию AJAX + HTTP BASIC AUTH

Друзья всех приветствую. Не имел ли то-нибудь дело с авторизацией HTTP BASIC AUTH посредством AJAX (XMLHttpRequest). Проблема в том, что не удается добиться корректную работу данного метода в Opera 9xx.
В отличие от IE и FIREFOX, даже если логин и пароль правильные, опера всегда выводит стандартное окно для ввода логина и пароля.
Вот код который я использую. Возможно существуют другие методики или пути, которые работают корректно?

Код HTML:
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;
}
Заранее всем спасибо!!

Старый 22.01.2008, 15:30
KidsKilla вне форума Посмотреть профиль Отправить личное сообщение для KidsKilla Посетить домашнюю страницу KidsKilla Найти все сообщения от KidsKilla
  № 2  
Ответить с цитированием
KidsKilla
.grin! wuz here
 
Аватар для KidsKilla

Регистрация: Aug 2004
Адрес: paradise city
Сообщений: 3,981
Отправить сообщение для KidsKilla с помощью ICQ
статус присваивается не сразу. например:
Код:
http.onreadystatechange = function(){
    // только при состоянии "complete"
    if (this.readyState == 4) {
        // для статуса "OK"
        if (this.status == 200) {
            // здесь идут всякие штуки с полученным ответом
        } else {
            alert("Не удалось получить данные:\n" +
                this.statusText);
        }
    }
}
http://ru.wikipedia.org/wiki/XMLHttpRequest
__________________
Breakcore them all!

Старый 22.01.2008, 16:45
igor82 вне форума Посмотреть профиль Отправить личное сообщение для igor82 Найти все сообщения от igor82
  № 3  
Ответить с цитированием
igor82

Регистрация: Apr 2002
Адрес: Россия, Воронеж
Сообщений: 121
Отправить сообщение для igor82 с помощью ICQ Отправить сообщение для igor82 с помощью Yahoo
Спасибо. А как всетаки с оперой быть?

Старый 22.01.2008, 17:50
KidsKilla вне форума Посмотреть профиль Отправить личное сообщение для KidsKilla Посетить домашнюю страницу KidsKilla Найти все сообщения от KidsKilla
  № 4  
Ответить с цитированием
KidsKilla
.grin! wuz here
 
Аватар для KidsKilla

Регистрация: Aug 2004
Адрес: paradise city
Сообщений: 3,981
Отправить сообщение для KidsKilla с помощью ICQ
ответ выше. если у вас просто опера не проходит аутентификацию, проверьте все возможные заголовки на UTF-8
__________________
Breakcore them all!

Старый 22.01.2008, 17:58
igor82 вне форума Посмотреть профиль Отправить личное сообщение для igor82 Найти все сообщения от igor82
  № 5  
Ответить с цитированием
igor82

Регистрация: Apr 2002
Адрес: Россия, Воронеж
Сообщений: 121
Отправить сообщение для igor82 с помощью ICQ Отправить сообщение для igor82 с помощью Yahoo
Проверял заголовки. В опере до версии 9.24 почему то просто отсекался заголовок 'Authorization' т.е броузер его просто не слал серверу и все. Затем скачал 9.24. Там ситуация выправилась и заголовок уже отсылался серверу. Но попрежнему вылетает окно для ввода логина и пароля. Такое ощущение что опера шлет корректные заголовки НО НЕ ПРИНИМАЕТ куку от сервера.

Старый 22.01.2008, 18:04
KidsKilla вне форума Посмотреть профиль Отправить личное сообщение для KidsKilla Посетить домашнюю страницу KidsKilla Найти все сообщения от KidsKilla
  № 6  
Ответить с цитированием
KidsKilla
.grin! wuz here
 
Аватар для KidsKilla

Регистрация: Aug 2004
Адрес: paradise city
Сообщений: 3,981
Отправить сообщение для KidsKilla с помощью ICQ
Ошибки в коде я указал. Возможную причину тоже.
(Однако, то что сервер принимает правильно утф-8, как я понял, так никто и не проверял)
В отсутствии остальной конкретики и в виду того что с телепатией у меня плохо, ничем не могу помочь.
__________________
Breakcore them all!

Старый 22.01.2008, 20:48
igor82 вне форума Посмотреть профиль Отправить личное сообщение для igor82 Найти все сообщения от igor82
  № 7  
Ответить с цитированием
igor82

Регистрация: Apr 2002
Адрес: Россия, Воронеж
Сообщений: 121
Отправить сообщение для igor82 с помощью ICQ Отправить сообщение для igor82 с помощью Yahoo
Ок спасибо. Я все более детально проверю и вернусь тогда.
Еще раз спасибо что откликнулись

Старый 24.01.2008, 15:45
igor82 вне форума Посмотреть профиль Отправить личное сообщение для igor82 Найти все сообщения от igor82
  № 8  
Ответить с цитированием
igor82

Регистрация: Apr 2002
Адрес: Россия, Воронеж
Сообщений: 121
Отправить сообщение для igor82 с помощью ICQ Отправить сообщение для igor82 с помощью Yahoo
Итак. В коде нет никакой ошибки ибо скрипт работает в синхронном режиме, что определяется соответсвующим параметром в методе open. Заголовки Выводил в браузере и на сервере тоже в файл запысывал (JS обращался к PHP скрипту а тот в свою очередь заголовки которые браузер передавал серверу писал в файл), все в норме вроде.

Создать новую тему Ответ Часовой пояс GMT +4, время: 13:29.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 13:29.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.