IOS: javascript cookie не работает в таких браузерах ios, как safari или chrome - PullRequest
0 голосов
/ 09 июня 2019

Я работаю с js, чтобы сохранить свой список покупок в cookie.Он отлично работает на Windows, Macintosh или Android, но не работает на мобильных браузерах iphone (Safari и Chrome). На странице продуктов я добавляю продукты в свой список и после обновления страницы или перенаправления на другие страницы файл cookie пуст.

Я попробовал два способа записи cookie, а также поиграл с параметрами cookie, но проблема все еще есть.

вот мой код для установки cookie:

function bake_cookie(name, value) {
  var date, 
  date = new Date();
  date.setTime(date.getTime()+(30*24*60*60*1000));
  var cookie = [name, '=', JSON.stringify(value), '; domain=', "", '; 
  path=','/; expires='+date.toUTCString()+"';"].join('');
  document.cookie = cookie;
}

Мое значение - это массив таких объектов:

[
  {
   count: 3
   food_id: 2
   kitchen_name: "kitchen 1"
   pic: "url"
   title: "food 1"
   total_price: 21000
   unit_price: 7000
  },
  {
   count: 5
   food_id: 7
   kitchen_name: "kitchen 2"
   pic: "url"
   title: "food 2"
   total_price: 25000
   unit_price: 5000
  },...
]

чтобы сначала обновить его, я удаляю cookie следующим образом:

function delete_cookie(name) {
  document.cookie = [name, '=; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/; 
  domain=', ""].join('');
}

тогда я вызываю bake_cookie () с новыми входами.

1 Ответ

0 голосов
/ 14 июня 2019

Дай угадаю, твой файл cookie содержит не-ASCII символы?Это прекрасно работает во всех средах, кроме iOS.Решением является URL-кодирование и URL-декодирование.

Другое решение заключается в использовании js-cookie , который будет обрабатывать это прозрачно.

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