gpt4 book ai didi

javascript - 一次设置多个cookie的功能不起作用

转载 作者:行者123 更新时间:2023-12-02 21:03:10 24 4
gpt4 key购买 nike

我想设置cookie。我有一个数组和一个函数 setCookies。在此函数中,我循环遍历 myCookies 数组,经过一些操作后,我得到一个字符串。该字符串应该设置cookie。

 const myCookies = 
[
{budgetMonth: someValue1},
{budgetDay: someValue2},
{expensesMonth: someValue3}
];

function setCookies(myCookies) {
let arr = [];
for(let i of Object.keys(myCookies)) {
let myItems = myCookies[i];

for(let y of Object.keys(myItems)) {
arr.push('document.cookie ' + '= "' + y + '=' + myItems[y] + "\"");
}
}

let stri = '';
arr.forEach(item => {
stri += item + ';'
});

return stri;
}

setCookies(myCookies);

当我记录 stri 时,我看到下面列出的字符串。设置cookie不是正确的方法吗?我猜是的,但是为什么不起作用呢?当我输入代码 document.cookie = "budgetMonth=someValue1"时,cookie 就被设置了。

document.cookie = "budgetMonth=someValue1";
document.cookie = "budgetDay=someValue2";
document.cookie = "expensesMonth=someValue3";

最佳答案

您的代码存在几个问题。

  1. 您存储 cookie 值的结构不一定不正确,但将其写为 myCookies = {name1: value1, name2: value2} 可以间接简化您的代码验证您是否没有多次设置相同的 cookie 名称(除非您确实想这样做,例如为同一个 key 设置多个路径),并允许您稍后从列表中添加/删除 cookie以更简化的方式编写代码;

  2. 您正在生成一个数组,并使用该数组生成一个字符串,但您没有对它们中的任何一个执行任何操作。要实际设置 cookie,您必须执行代码 document.cookie = Something。

代码的一个非常简化的版本(未经测试)将类似于:

const myCookies = {
budgetMonth: someValue1,
budgetDay: someValue2,
expensesMonth: someValue3
};
function setCookies(myCookies) {
for(let k of Object.keys(myCookies)) {
document.cookie = k + "=" + myCookies[k];
}
}
setCookies(myCookies);

关于javascript - 一次设置多个cookie的功能不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61287137/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com