Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Проблема с куками (ajax) (https://javascript.ru/forum/events/72952-problema-s-kukami-ajax.html)

unity555 09.03.2018 20:09

Проблема с куками (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 11.03.2018 18:30

Вроде разобрался. Куки работают только после загрузки страницы.
А тут ajax.

laimas 12.03.2018 01:28

Цитата:

Сообщение от unity555
Куки работают только после загрузки страницы.

После обновления ее для РНР. Если первый запрос понятен и если он не ради установки кук, то нормально. Но зачем же второй, куки прочитать может и клиент, как впрочем и установить.


Часовой пояс GMT +3, время: 01:50.