Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ajax кроссдоменная авторизация 
:(
    Опции темы
strS
Дата 30.7.2013, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 19.2.2009

Репутация: нет
Всего: нет



Есть 2  веб-сервер, на них реализована авторизация через ajax. Вот код:

Код

function TryLogin(url, username, password, callback) {
    
    var ajaxObject = {
        url: "/QVAJAXZFC/Authenticate.aspx",
        type: 'GET',
        cache: false,
        error: function () {
            callback(false);
        },
        success: function () {
            callback(true);
        }
    };
    if (username != null && password != null) {
        username = encodeURIComponent( username );
        password = encodeURIComponent( password );
        ajaxObject.username = username;
        ajaxObject.password = password;
        if (window.btoa) {
            ajaxObject.headers = { 'Authorization': 'Basic ' + window.btoa(username + ':' + password) };
        }
    }
    
    $.ajax( ajaxObject );


Путь до даммой страницы - http://citto-analit-02/qlikview/login2.htm и http://analit/qlikview/login2.htm
Оба веб-сервера абсолютно одинаковые.

Я хочу пройти авторизацию с первого сервера на втором сервере.

Что мне нужно сделать, чтобы произвести авторизацию на другом сервере программно?


Пытался добавлять        

dataType:"jsonp",
crossDomain: true,

не помогло =(. Библиотека jquery 1.7

В общем ничего не понимаю. Куда-то не туда двигаюсь.

Мне же вроде нужно отправлять ajaxObject с первого сервака на второй? 
Надеюсь на вашу помощь

PM MAIL   Вверх
akizelokro
Дата 30.7.2013, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Крокодил
**


Профиль
Группа: Участник
Сообщений: 761
Регистрация: 30.7.2007

Репутация: 2
Всего: 5



JavaScript грузится в браузерах. Ты подгрузил браузер на сервере?
Но даже и в этом случае браузер уже клиент(ское приложение). Могут, конечно, прописать и JS как отдельный модуль для сервера, но фактически ты пытаешься получить доступ в клиенте.
Потом же, есть политика безопасности для серверов и клиентов (браузеров). Ты пробовал запустить свой код по отдельности с авторизацией на веб-страницах, каждой для своего сервера? Должно работать, думаю. А на странице с одного сервера, чтобы авторизоваться на другом, не работает?


--------------------
a = a + b; b = a - b; a = a - b;
PM MAIL   Вверх
_zorn_
Дата 31.7.2013, 06:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 21.8.2007

Репутация: 1
Всего: 12



Попробуй добавить в заголовок ответа запрашиваемой страницы Access-Control-Allow-Origin: *
PM MAIL   Вверх
strS
Дата 31.7.2013, 07:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 19.2.2009

Репутация: нет
Всего: нет



_zorn_

Добавил, не получилось

Вот код:

Код

function TryLogin(url, username, password, callback) {
    
    var ajaxObject = {
        url: "http://citto-analit-02/QVAJAXZFC/Authenticate.aspx",
        type: 'GET',
        dataType: 'jsonp',
        crossDomain: true,
        cache: false,
        error: function () {
            callback(false);
        },
        success: function () {
            callback(true);
        }
    };
    if (username != null && password != null) {
        username = encodeURIComponent( username );
        password = encodeURIComponent( password );
        ajaxObject.username = username;
        ajaxObject.password = password;
        if (window.btoa) {
            ajaxObject.setRequestHeader = { 'Authorization': 'Basic ' + window.btoa(username + ':' + password) };
        ajaxObject.setRequestHeader = { 'Access-Control-Allow-Origin': '*' };
        }
    }
    
    $.ajax( ajaxObject );
}


Что интересно, если я зайду на http://citto-analit-02/qlikview/login2.htm и пройду авторизацию, то все ок, а если на http://localhost/qlikview/login2.htm , то ругается и меня не пускает.
(пока что пытаюсь попробовать на своем компе)

PM MAIL   Вверх
strS
Дата 31.7.2013, 08:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 19.2.2009

Репутация: нет
Всего: нет



akizelokro

да, не работает. 
чтобы было более понятно, вот ссылка на сервак - http://analit.72to.ru/qlikview/FormLogin.htm
мне нужно авторизоваться на нем программно

вот не могу придумать как) 
PM MAIL   Вверх
_zorn_
Дата 31.7.2013, 08:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 21.8.2007

Репутация: 1
Всего: 12



Цитата(strS @  31.7.2013,  15:58 Найти цитируемый пост)
Добавил, не получилось

http://analit.72to.ru/QvAJAXZfc/Authenticate.aspx
Код

Response Headers
================
Content-Type: application/xml;charset=UTF-8
Content-Length: 15730

200 

Где ?
PM MAIL   Вверх
strS
Дата 31.7.2013, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 19.2.2009

Репутация: нет
Всего: нет



_zorn_,  я добавлял на тестовом сервере...

сейчас правильно?
PM MAIL   Вверх
_zorn_
Дата 1.8.2013, 04:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 21.8.2007

Репутация: 1
Всего: 12



Цитата(strS @ 31.7.2013,  18:42)
_zorn_,  я добавлял на тестовом сервере...

сейчас правильно?

Все равно нет этого заголовка.

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

Код

Соединение было сброшено
                
          Во время загрузки страницы соединение с сервером было сброшено.
        
  Возможно, сайт временно недоступен или перегружен запросами. Подождите некоторое время и попробуйте снова.
  Если вы не можете загрузить ни одну страницу – проверьте настройки соединения с Интернетом.
  Если ваш компьютер или сеть защищены межсетевым экраном или прокси-сервером – убедитесь, что Firefox разрешён выход в Интернет.

PM MAIL   Вверх
strS
Дата 1.8.2013, 06:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 19.2.2009

Репутация: нет
Всего: нет



_zorn_

перейдите на
http://analit.72to.ru
PM MAIL   Вверх
Sanchezzz
Дата 2.8.2013, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 3
Всего: 60



Access-Control-Allow-Origin: *
должен говорить сервер но не посылать клиент.

например на PHP Это выглядит так 
Код

<?
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Allow-Headers: X-Requested-With');

Достаточно указывать Access-Control-Allow-Origin остальные для уточнения.


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0859 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.