How to set multiple key-value pairs to one cookie?

前端 未结 2 1547
挽巷
挽巷 2020-12-09 10:20

I am using this line to set multiple key-value pair at once to one cookie

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


        
相关标签:
2条回答
  • 2020-12-09 10:37

    Actually i think it would be better to use
    document.cookie = "myCookie=foo='bar'&baz='poo'; here is the rest of cookie specifications if you like..."
    as far as i know, it also is compatible with Asp and Asp.Mvc on server side:
    string foo=Request.Cookies["myCookie"]["foo"]

    0 讨论(0)
  • 2020-12-09 10:51

    It does not make sense to store multiple key-value pairs into one cookie, because by definition a cookie represents one key-value pair.

    I believe you don't understand well how document.cookie works. It is not a standard JS string: when you set it, the cookie definition it contains is appended to the list of existing cookies. That is, you cannot set two cookies at the same time using this API.

    You have two solutions:

    • Use a cookie for each key-value you want to store:

      document.cookie = "myCookie=myValue";
      document.cookie = "myOtherCookie=myOtherValue";
      
    • Store a single cookie with a custom serialization of your complex data, for example JSON:

      document.cookie = "myCookie=" + JSON.stringify({foo: 'bar', baz: 'poo'});
      
    0 讨论(0)
提交回复
热议问题