Установка постоянных файлов cookie с помощью javascript
Я нашел странную ошибку в своем приложении, и из-за моего небольшого опыта работы с Javascript я не смог его отладить;
Я пытаюсь установить постоянный файл cookie, который умрет через год после его установки (максимальное значение в основных браузерах), но сохраняется и не будет удаляться после закрытия браузера, я использовал этот код:
// Build the expiration date string:
var expiration_date = new Date ();
expiration_date . setYear (expiration_date . getYear () + 1);
expiration_date = expiration_date . toGMTString ();
// Build the set-cookie string:
var cookie_string = "test_cookies = true; path=/; expires=" + expiration_date;
// Create/update the cookie:
document . cookie = cookie_string;
Я заметил, что cookie имеет тег сеанса, когда я использую плагин менеджера cookie, и только те, у кого этот тег, удаляются после закрытия браузера (другие, такие как Wordpress и такие скрипты сохраняются)
Ответы
Ответ 1
Я изменил ваш синтаксис на мой стиль кодирования (переменные вверху, минимальное повторное приведение и т.д.), И приведенный ниже пример довольно хорошо работает на моем локальном хосте.
// Build the expiration date string:
var expiration_date = new Date();
var cookie_string = '';
expiration_date.setFullYear(expiration_date.getFullYear() + 1);
// Build the set-cookie string:
cookie_string = "test_cookies=true; path=/; expires=" + expiration_date.toUTCString();
// Create or update the cookie:
document.cookie = cookie_string;
Если у вас возникли проблемы на рабочем сервере, попробуйте также настроить домен файла cookie (www.quirksmode.org/js/cookies.html#link5).
Ответ 2
Вы пытались использовать методы getFullYear()
и setFullYear()
экземпляра Date
вместо getYear()
и setYear()
? последние устарели, см. здесь.
надеюсь, что это поможет! веселит.
Ответ 3
Вы также можете использовать атрибут max-age
.
cookie_string = "test_cookies=true; path=/; max-age=31536000";
- Одна неделя: максимальный возраст = 604800
- Один месяц: максимальный возраст = 2628000
- Один год: максимальный возраст = 31536000