Javascript - куки очищаются после закрытия браузера? - PullRequest
0 голосов
/ 17 марта 2019

Я пытаюсь установить cookie, которые будут действовать после закрытия браузера.Хотя каждый раз, когда я закрываю браузер, cookie исчезает.Я думал, что куки должны храниться, даже если браузер закрыт?Если не указано, что будет удалено через некоторое время?

Например:

console.log("cookies ", document.cookie)
document.cookie = "some_cookie=true; max-age=31536000";

При первом открытии страницы с этим кодом JS печатается cookies.

После обновления браузера он печатает cookies some_cookie=true

После закрытия браузера и повторного открытия той же страницы он печатает cookies.

Я тестировал на Firefox 65.0.2 (64-bit), Chrome 72.0.3626.109 (Official Build) (64-bit) and Chromium 71.0.3578.98 (Official Build) Built on Ubuntu , running on Ubuntu 16.04 (64-bit) (дляChrome и Chromium должны были использовать http-сервер, потому что он вообще не позволял бы устанавливать cookie-файлы, если исходный html-файл был открыт напрямую).

Результаты все те же, после закрытия браузера мой cookie удаляется.Я также проверил, была ли опция очистки куки при закрытии браузера, но она не включена.

Я что-то здесь не так делаю?Или файлы cookie устарели, и я должен просто придерживаться localStorage?

PS Я пытался использовать max-age, expires или не использовать их вообще, но результат тот же.

1 Ответ

0 голосов
/ 17 марта 2019

Для меня, что сработало, было указать max-age при хранении cookie. Но также при тестировании мне пришлось использовать веб-сервер для обслуживания моего html-файла, потому что открытие простого html-файла непосредственно в браузере не позволяет хранить его до указанной продолжительности. Даже если он сообщает, что срок его действия истекает в какой-то день, он все равно удаляет cookie, когда браузер закрыт (это не совсем так).

Таким образом, поведение по умолчанию истекает, когда сессия закрыта, и чтобы изменить это, необходимо указать некоторую продолжительность с помощью атрибутов expires или max-age.

Согласно документации Mozzila: «Если не истек срок действия и не указан максимальный возраст, он истечет в конце сеанса».

https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie#Write_a_new_cookie

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...