1、cookie有大小限制,大小一般是4k,超过这个限制,cookie中无法存储该数据
解决办法:
1、key用短字符
2、如果value对应的是集合对象,我们可以增加cookie的数量解决大小限制问题(自己遇到的问题:后台查询结果集为7个用户所属系统应用对象,存储到cookie中时,只能存储5个)
代码:
$.cookie("count", data.system.length);
$.each(data.system, function(index,element) {
$.cookie("system"+index+"",JSON.stringify({"system":element}));
});
2、cookie的数量限制,30个以上(百度搜索的)
3、对cookie的删除
Cookie[] cookies = request.getCookies();
for (Cookie cookie : cookies) {
if (cookie.getName().startsWith("system")||cookie.getName().startsWith("userinfo")){//对指定cookie的删除
cookie.setMaxAge(0);//设置立即删除
cookie.setPath("/");
response.addCookie(cookie);//一定要回写到客户端,否则设置无效
}
}