2014-07-21 19 views
8

Sto usando questa linea per impostare più coppia chiave-valore in una sola volta per un biscottoCome impostare più coppie chiave-valore in un cookie?

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

è sembrato test1 non è impostato il cookie con successo, perché quando scrivo document.cookie nella console, non ha stampa questa coppia chiave-valore. Qualcuno sa come impostare più coppie chiave-valore a UN cookie?

risposta

28

Non ha senso memorizzare più coppie di valori-chiave in un unico cookie, perché per definizione un cookie rappresenta una coppia valore-chiave.

Credo che tu non capisca bene how document.cookie works. Non è una stringa JS standard: quando la si imposta, la definizione di cookie che contiene è aggiunta all'elenco all'elenco dei cookie esistenti. Cioè, non puoi impostare due cookie allo stesso tempo usando questa API.

Avete due soluzioni:

  • Utilizzare un cookie per ogni valore-chiave che si desidera memorizzare:

    document.cookie = "myCookie=myValue"; 
    document.cookie = "myOtherCookie=myOtherValue"; 
    
  • memorizzare un singolo cookie con un serializzazione personalizzata dei vostri dati complessi, per esempio JSON:

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

In realtà penso che sarebbe meglio usare
document.cookie = "myCookie=foo='bar'&baz='poo'; here is the rest of cookie specifications if you like..."
per quanto ne so, è anche compatibile con Asp e Asp.Mvc sul lato server:
string foo=Request.Cookies["myCookie"]["foo"]

Problemi correlati