Ответ 1
document.cookie
имеет очень особенное поведение. Как вы уже видели, присвоение ему добавляет (или обновляет) файл cookie (или несколько файлов cookie), а не заменяет все файлы cookie. Это очень необычно.
Прочитайте все об этом на MDN.
Если я заставлю Chrome показать мне document.cookie
, перейдя в консоль и набрав document.cookie;
, он даст мне, скажем:
"name=John; gender=male";
Но тогда, если я набираю, скажем, document.cookie = 5;
все, что он делает, это добавить 5;
в начало строки, поэтому я получаю:
"5; name=John; gender=male";
Если я попробую document.cookie = null;
, то он даже ничего не сделает.
Как это может быть? Это переменная, не так ли? Так почему же оператор назначения не работает так, как должен? На самом деле это всего лишь немного синтаксического сахара, а не реальная переменная? И если да, то какой именно сахар покрывает?
document.cookie
имеет очень особенное поведение. Как вы уже видели, присвоение ему добавляет (или обновляет) файл cookie (или несколько файлов cookie), а не заменяет все файлы cookie. Это очень необычно.
Прочитайте все об этом на MDN.
Почему бы не взглянуть на MDN?
Строка в правой части оператора присваивания для document.cookies
должна быть разделенным точкой с запятой списком пар ключ-значение, т. document.cookie = "aKey=5"
установит/обновит aKey
cookie aKey
.
Так что да, document.cookie
показывает особое поведение.
Вот пример вашего issue". Кроме того, он говорит следующее:
Вы можете удалить файл cookie, просто обновив его срок действия до нуль.