Показать сообщение отдельно
  #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.
Ответить с цитированием