在1个cookie字符串

时间:2015-06-23 05:10:57

标签: cookies

我正在尝试为我的网页创建一个Cookie,如下所示:

document.cookie = "Name="+escape(name)+"; Value="+escape(value)+expires+";";

name,传递给函数的值和expires是在days参数上计算的 - 它也传递给了这个函数。

正在设置cookie作为结果,但问题是在cookie中只设置了一个参数。当我尝试检索document.cookie的值时

console.log(document.cookie)

我只获得了第一个关键值对     Name = escape(name);

为什么我没有得到Value =“+ escape(value) - 我不能在一个语句中设置多个键值对:

document.cookie =“key1 =”+ value1 +“key2 =”+ value2依此类推。

1 个答案:

答案 0 :(得分:1)

您只能在一个语句中编写/更新一个cookie(单个名称 - 值对)。

来自https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie#Syntax

  

document.cookie = newCookie;

     

在上面的代码中,newCookie是一个表单key = value的字符串。注意   您只能使用此方法一次设置/更新一个cookie。

要添加多对,请尝试以下操作:

var pairs = [
  {"name" : "foo", "value" : "foobar", "expires" : "Tue, 23 Jun 2015 19:00:00 GMT"},
  {"name" : "baz", "value" : 1198, "expires" : "Wed, 24 Jun 2015 12:00:00 GMT"}
];
pairs.forEach(function(pair) {
  document.cookie = encodeURIComponent(pair.name) + "=" + encodeURIComponent(pair.value) + "; expires=" + pair.expires;
});