【问题标题】:How to set multiple key-value pairs to one cookie?如何将多个键值对设置为一个 cookie?
【发布时间】:2019-09-26 14:37:43
【问题描述】:

我正在使用这一行将多个键值对一次设置为一个 cookie

document.cookie="username=John Smith; test1=ew; expires=Thu, 18 Dec 2013 12:00:00 GMT; path=/";

似乎test1 没有成功设置为cookie,因为当我在控制台中写入document.cookie 时,它没有打印这个键值对。有谁知道如何将多个键值对设置为ONE cookie

【问题讨论】:

    标签: javascript cookies


    【解决方案1】:

    将多个键值对存储到一个 cookie 中是没有意义的,因为根据定义一个 cookie 代表一个键值对

    相信你不是很了解how document.cookie works。它不是一个标准的 JS 字符串:当你设置它时,它包含的 cookie 定义附加到现有 cookie 列表中。也就是说,您不能使用此 API 同时设置两个 cookie。

    您有两种解决方案:

    • 为您要存储的每个键值使用一个 cookie:

      document.cookie = "myCookie=myValue";
      document.cookie = "myOtherCookie=myOtherValue";
      
    • 使用您的复杂数据的自定义序列化存储单个 cookie,例如 JSON:

      document.cookie = "myCookie=" + JSON.stringify({foo: 'bar', baz: 'poo'});
      

    【讨论】:

      【解决方案2】:

      其实我觉得最好用
      document.cookie = "myCookie=foo='bar'&baz='poo'; here is the rest of cookie specifications if you like..."
      据我所知,它还与服务器端的AspAsp.Mvc 兼容:
      string foo=Request.Cookies["myCookie"]["foo"]

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-11-13
        • 1970-01-01
        • 2022-12-10
        • 2015-10-28
        • 2023-03-04
        • 2018-07-28
        • 2021-08-13
        相关资源
        最近更新 更多