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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ajax разные данные 
V
    Опции темы
holop2
Дата 14.7.2013, 23:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



есть 3 запроса
вход в аккаунт (удачно - вернет данные, неудачно - вернет false)
http://vta.aws.krysalix.com/users/remotelo...;password=prob1
выход из аккаунта
http://vta.aws.krysalix.com/users/remotelogout
и определение выполнен вход или нет (выполнен - вернет данные, не выполнен - вернет null)
http://vta.aws.krysalix.com/users/remotecurrent

если переходить по этим ссылкам в браузере
все работает
вошли в аккаунт - третий запрос вернул данные
вышли из аккаунта - третий запрос вернул null

но если послать эти запросы с помощью ajax (как в примере ниже)
вне зависимости от того, выполнен вход или нет, третий запрос возвращает null
т.е. сервер, возможно, "не узнает" пользователя при ajax запросах, чтоли
не знаю в чем дело

Код

<!DOCTYPE html>

<html>
<head>

<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script type="text/javascript">
 
var aurl;
function sendPostSample ()
{
    aurl = "http://vta.aws.krysalix.com/users/remotelogin?username=prob1&password=prob1";
    $.ajax({
    type: "GET",
    url: aurl,
    dataType: 'json',
    success: OnSuccessFunction1
    });
}
function OnSuccessFunction1 (data1)
{
    alert(data1);
    aurl = "http://vta.aws.krysalix.com/users/remotecurrent";
    $.ajax({
    type: "GET",
    url: aurl,
    dataType: 'json',
    success: OnSuccessFunction2
    });
}

function OnSuccessFunction2 (data2)
{
    alert(data2);
}

</script>
 
</head>
<body id="body">
<div id="top">
<a href="#" onClick="javascript: sendPostSample();">send</a>

</div>
</body>
</html>


Это сообщение отредактировал(а) holop2 - 14.7.2013, 23:59
PM MAIL   Вверх
Arantir
Дата 15.7.2013, 01:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


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

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



Все просто аж до банальности. При получении ответа на AJAX-запрос браузер не ставит из него куки, как это было бы с обычным открытием страницы, он их в нем только отправляет. А, если Вы вдруг не в курсе, сессии как раз на куках базируются. 

Чтобы это работало, нужно передавать ID сессии явным образом в ответе на AJAX-запрос и установить куку вручную.


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
holop2
Дата 15.7.2013, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



спасибо)
а можно поподробнее, как это сделать?
PM MAIL   Вверх
ksnk
Дата 15.7.2013, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



В обработчике http://vta.aws.krysalix.com/users/remotecurrent в одном из полей возвращаемого json вернуть 

Код

json_decode(array(
...
'session_id'=>session_id(),
...
));

в методе 
Код

function OnSuccessFunction2 (data2)
{
    if(data2.session_id){
        document.cookie='PHPSESSID' + "=" + data2.session_id;
    }
    alert(data2);
}

Если имя сессионной куки другое - отрихтовать по месту напильником...

Это сообщение отредактировал(а) ksnk - 15.7.2013, 10:27


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Применение библиотек | Следующая тема »


 




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


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

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