azovl
@azovl

Почему cookies сохраняются в такой форме?

Сохраняю cookie вот таким способом:
var l = e.currentTarget.dataset.lang,
                expires = "",
                date = new Date();

            date.setTime(date.getTime() + (360*24*60*60*1000));
            expires = "; expires=" + date.toUTCString();
            document.cookie = 'language' + "=" + l + expires + "; path=/";


Собственно результат должен включать в себя значение и ключ, а именно:
language = ru


Но, что я вижу, совершенно другой результат, как будто мне необходимо преобразовать в другую кодировку или десериализовать:
language = d725e8fc6e6a3c9370602caf9b8157cfc1f69ba22fdef33654c57f769a7f9012a%3A2%3A%7Bi%3A0%3Bs%3A8%3A%22language%22%3Bi%3A1%3Bs%3A2%3A%22en%22%3B%7D


Вопросы: Почему значение такого вида? Как его декодировать или что я делаю некорректно?
  • Вопрос задан
  • 250 просмотров
Решения вопроса 1
lazalu68
@lazalu68
Salmon
Если вы вручную устанавливаете element.dataset.lang, то как раз в нем и ошибка. Вероятно, вы изначально записываете такое вот дикое значение в data-lang вашего элемента.

Если речь о языке, то можно его брать из html, то есть document.documentElement.lang, как-то так:

var l = document.documentElement.lang,
    expires = "",
    date = new Date();

date.setTime(date.getTime() + (360*24*60*60*1000));
expires = "; expires=" + date.toUTCString();
document.cookie = 'language' + "=" + l + expires + "; path=/";

// "language=ru; expires=Sat, 18 Aug 2018 20:30:14 GMT; path=/"
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы