iOS:javascript cookie在Safari或chrome之类的ios浏览器上不起作用

时间:2019-06-08 22:41:47

标签: javascript ios cookies

我正在与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 :(得分:0)

让我猜,您的cookie包含非ASCII字符吗?在iOS以外的所有环境中,该功能都可以正常运行。解决方案是URL编码和URL解码。

另一种解决方案是使用js-cookie,它将透明地进行处理。