Подтвердить что ты не робот

Установка постоянных файлов 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 и такие скрипты сохраняются)

4b9b3361

Ответ 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