【问题标题】:specifying multiple key value pairs in 1 cookie string在 1 个 cookie 字符串中指定多个键值对
【发布时间】:2015-09-08 18:00:46
【问题描述】:

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

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

传递给函数并过期的名称、值是根据 days 参数计算的 - 该参数也传递给此函数。

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

console.log(document.cookie)

我只得到第一个键值对 名称 = 转义(名称);

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

document.cookie = "key1 ="+value1+"key2="+value2 等等。

【问题讨论】:

    标签: cookies


    【解决方案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;
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-25
      • 1970-01-01
      • 2018-08-19
      • 2017-03-14
      • 1970-01-01
      相关资源
      最近更新 更多