Почему куки не корректно работают при их установке через ajax?

207
11 марта 2018, 22:12

Мне нужно устанавливать куки с помощью ajax. При нажатии на ссылку, скрипт в html коде отправляет данные php скрипту. И возвращает ответ в result_area.

Что должен делать этот код. При нажатии на ссылку будет дважды вызван скрипт actions.php который будет изменять куки cookie_string. Итого в куки должно быть another_cookieanother_cookie.

При первом нажатии на ссылку - мы ничего не увидим на странице. Если мы посмотрим в браузер->куки->cookie_string там будет another_cookie.

При втором нажатии на ссылку - мы увидим на странице another_cookie. Если мы посмотрим в браузер->куки->cookie_string там будет another_cookieanother_cookie.

При третьем нажатии на ссылку - мы увидим на странице another_cookieanother_cookie. Если мы посмотрим в браузер->куки->cookie_string там будет another_cookieanother_cookieanother_cookie. и т.д.

Как вы видите - вывод кук не соответствует действительности. Как будто выводится предыдущий результат (на "шаг назад"). Почему куки не корректно работают при их установке через ajax? И как мне корректно их устанавливать через ajax в данном случае?

HTML

<script>
$(document).ready(function() { 
$('#input_area').on('click', '.cookie_link', function(){
/*Первый вызов*/
$.ajax({
url: 'actions.php?set_my_cookie&id='+this.id,
success: function(data){$('#result_area').html(data);}
});
/*Второй вызов*/
$.ajax({
url: 'actions.php?set_my_cookie&id='+this.id,
success: function(data){$('#result_area').html(data);}
});

return false;
});
});
</script>

<div id="input_area">
<a href="#" class="cookie_link" id="another_cookie">Link</a>
</div>
<div id="result_area">
</div>

PHP

//Принимаемые данные
$id=$_GET['id'];
//Вызов функции
if (isset($_GET['set_my_cookie']))
{
$cookie_string=$_COOKIE['cookie_string'];
$cookie_string=$cookie_string.$id;
setcookie('cookie_string', $cookie_string, time()+31536000,"/");
echo $_COOKIE['cookie_string'];
}
READ ALSO
использование функций чужого сайта в javascript

использование функций чужого сайта в javascript

Есть некая func на сайте, при вызове ее в консоли выводится результат, но если создать свое расширение, и вызвать эту функцию выдается ошибкаДля...

146
Вызвать код прямо в консоли [требует правки]

Вызвать код прямо в консоли [требует правки]

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

130
Удалить сохранённые данные

Удалить сохранённые данные

Я добавил к формам ввода autocomplete="off", но сохранённые данные(логин и пароль) все равно отображаются в этих формахКак устранить данную проблему?

191