我正在与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()。
答案 0 :(得分:0)
让我猜,您的cookie包含非ASCII字符吗?在iOS以外的所有环境中,该功能都可以正常运行。解决方案是URL编码和URL解码。
另一种解决方案是使用js-cookie,它将透明地进行处理。