我正在尝试创建一个cookie。我怀疑我的cookie没有保存或正确检索。我做错了什么?
我尝试了2种方法来保存这个cookie:
Cookie会保存在此函数中:
function(config) {
var config_copy = JSON.parse(JSON.stringify(config));
setCookie('key',config_copy);
}
使用setCookie();
function(config) {
var config_copy = JSON.parse(JSON.stringify(config));
setCookie();
}
然后触发此功能:
function setCookie(key,config_copy){
document.cookie = key + "=" + config_copy;
console.log("cookie saved");
console.log(config_copy);
}
console.log(config_copy);
在控制台中返回undefined
。
如何将config_copy
的值正确保存到JavaScript Cookie中?
答案 0 :(得分:2)
JSON.parse()
返回一个对象,而不是JSON字符串。您应该将JSON字符串放入cookie中,而不是JSON.parse
的结果。
function saveConfig(config) {
var config_copy = JSON.stringify(config);
setCookie("key", config_copy);
}
否则,您只需将Cookie设置为[Object object]
。
答案 1 :(得分:1)
Document.cookie
只接受primitive values,如果您传递的是调用Object.toString()
的对象,该对象会返回[ object Object ]
。
您也可以选择以cookie形式存储对象。
如果你想从一个对象的每个属性中创建一个cookie,你必须遍历该对象并从每个属性中创建一个cookie。
var saveConfig = function(config) {
var cookies = [];
for(var i in config)
cookies.push(document.cookie = i + '=' + config[i]);
return cookies;
}
saveConfig({hello: 'world', foo: 'bar'});
console.log(document.cookie);
Outputs: hello=world; foo=bar;
您可以将对象转换为字符串,并使用JSON.stringify()
将其存储在一个Cookie中。
var saveConfig = function(config) {
return document.cookie = 'config=' + JSON.stringify(config);
}
saveConfig({hello: 'world', foo: 'bar'});
console.log(document.cookie);
Outputs: config={"hello":"world","foo":"bar"};
答案 2 :(得分:0)
在你的第二个"选项"你必须发送这样的参数值:
userList.OrderByDescending(x => x.startTime).ThenBy(x => x.groupId).ToList();
如果您在没有参数的情况下调用它,它们将具有function(config) {
var config_copy = JSON.parse(JSON.stringify(config));
setCookie("key", config_copy);
}
值
答案 3 :(得分:-1)
您需要将变量传递给setCookie()才能使函数使用它们。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Functions#Calling_functions