Javascript-在一个JSON对象中设置多个cookie



场景是在网站上,用户可以多次选择商店,我想获取用户选择的所有商店,并为此使用cookie。

我想将cookie保存为JSON,例如{"storeId"、"0010"}、{"storeId"、《0011》}等。

所以下面的代码:它不是附加cookie,它只是覆盖值

function setCookieJson(name, value) {
var cookie = [name, '=', JSON.stringify(value), '; domain=.', 
window.location.host.toString(), '; path=/;'].join('');
document.cookie = cookie;
} 
setCookieJson('storeId', storeId);

我从上面的代码中得到的结果是:

storeId=";0010";

如果更改存储,则

storeId=";0011";

然而,预期结果应该是{"storeId","0010"},{"storeId","0011"}

我已经通过实现cookie已存在检查来解决这个问题:

代码:

function setCookieJson(name, value) {
var cookieExisted = getCookie(name).replace(/"/g,"");
var cookie;
if (cookieExisted.length) {
if (!cookieExisted.includes(value)) {
cookie = [name, '=', JSON.stringify(value + ',' + cookieExisted), '; domain=.', window.location.host.toString(), '; path=/;'].join('');
}
} else {
cookie = [name, '=', JSON.stringify(value), '; domain=.', window.location.host.toString(), '; path=/;'].join('');
}
document.cookie = cookie;
}

最新更新