我正在尝试在cookie中存储对象数组。
不使用jQuery或angular。
function setCook (name,value) {
var cookie = [name, '=', JSON.stringify(value)].join('');
document.cookie = cookie;
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
答案 0 :(得分:0)
只需JSON.parse
您的回复:
function setCook(name, value) {
var cookie = [
name,
'=',
JSON.stringify(value)
].join('');
document.cookie = cookie;
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) === 0) {
return JSON.parse(
c.substring(nameEQ.length, c.length)
);
}
}
return null;
}
setCook('foo', `[
{
"qux": "boz"
},
{
"baz": "zot"
}
]`);
let obj = readCookie('foo');
console.log(obj);
/*
[
{
"qux": "boz"
},
{
"baz": "zot"
}
]
*/
答案 1 :(得分:0)
您是在本地文件系统中运行它而不是在服务器上运行吗? 使用file:///协议进行浏览时,不会设置Cookie,具体取决于浏览器。