Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.03.2018, 20:09
Интересующийся
Отправить личное сообщение для unity555 Посмотреть профиль Найти все сообщения от unity555
 
Регистрация: 01.12.2017
Сообщений: 12

Проблема с куками (ajax)
Я вызываю php скрипт таким образом
/*Клик на элементе*/
/*Ставим куку show_cryptocurrency_on_graph с добавлением в неё новых значений*/
$.ajax({
url: 'actions.php?change_cryptocurrency_on_graph&action=remove&cryptocurrency_id_name='+this.id,success: function(panels_data){$('#source_panel_data').html(panels_data);}
});

/*Читаем куку*/
/*alert(document.cookie);*/  /*Пауза*/
$.ajax({
url: 'actions.php?insert_graph_script',success: function(graph_data){$('#graph_data').hide().html(graph_data).fadeIn('fast');}
});


Первый ajax запрос вызывает скрипт, который ставит куку
Он добавляет в неё значение - кука "растет", там всё больше информации
setcookie('show_cryptocurrency_on_graph', $show_cryptocurrency_on_graph, time()+$cookie_time,"/");


А второй ajax запрос их читает
$show_cryptocurrency_on_graph=$_COOKIE['show_cryptocurrency_on_graph'];


Происходит очень странная вещь. А именно - задержка в 1 шаг.
Если поставлена кука test, то прочтена кука - "пусто"
Если далее поставленно значение go, то прочтена кука - test
Если далее поставленно значение ready, то прочтена кука - testgo

Я не понимаю, что происходит.
Скрипты вызываются. Куку и её содержимое я вижу в браузере. А на этапе чтения (сразу после записи) только предыдущее значение куки. И в php коде (отладка) я вижу что прочиталось предыдущее.

Если мы раскомментируем alert - своего рода паузу, то все заработает.

Есть мнение, что это связано с заголовками.
Но один раз, я смог обойти это ограничение (глюк?), вызвав цепочку php функций.

Вы не могли бы мне объяснить в чем тут дело? Как корректно работать с ajax и cookie?

Последний раз редактировалось unity555, 09.03.2018 в 21:50.
Ответить с цитированием
  #2 (permalink)  
Старый 11.03.2018, 18:30
Интересующийся
Отправить личное сообщение для unity555 Посмотреть профиль Найти все сообщения от unity555
 
Регистрация: 01.12.2017
Сообщений: 12

Вроде разобрался. Куки работают только после загрузки страницы.
А тут ajax.
Ответить с цитированием
  #3 (permalink)  
Старый 12.03.2018, 01:28
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от unity555
Куки работают только после загрузки страницы.
После обновления ее для РНР. Если первый запрос понятен и если он не ради установки кук, то нормально. Но зачем же второй, куки прочитать может и клиент, как впрочем и установить.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с отображением значка во время запроса ajax АлексТраст AJAX и COMET 2 06.07.2012 12:37
Вызов методов объекта подгружаемого по ajax prophet AJAX и COMET 0 23.02.2012 11:52
ajax: проблема с русским языком llorangell AJAX и COMET 5 31.01.2012 20:06
ajax, iframe, chrome - проблема Aderba AJAX и COMET 2 04.08.2010 23:40
Проблема с AJAX запросом + mod_rewrite BrokenEye AJAX и COMET 1 12.07.2009 02:08