Voglio usare JQuery per eliminare i cookie; Ho provato questo
$.cookie('name', '', { expires: -1 });
Quindi aggiorno la pagina e il cookie è ancora lì:
alert('name:' +$.cookie('name'));
Perché? Grazie
Voglio usare JQuery per eliminare i cookie; Ho provato questo
$.cookie('name', '', { expires: -1 });
Quindi aggiorno la pagina e il cookie è ancora lì:
alert('name:' +$.cookie('name'));
Perché? Grazie
Risposte:
Per eliminare un cookie con JQuery, imposta il valore su null:
$.cookie("name", null, { path: '/' });
Modifica: la soluzione finale era specificare esplicitamente il filepath
proprietà ogni volta che si accede al cookie, poiché l'OP accede al cookie da più pagine in directory diverse, e quindi i percorsi predefiniti erano diversi (questo non era descritto nella domanda originale). La soluzione è stata scoperta nella discussione di seguito, il che spiega perché questa risposta è stata accettata, nonostante non fosse corretta.
Per alcune versioni jQ cookie, la soluzione sopra imposta il cookie sulla stringa nulla. Quindi non rimuovere il cookie. Utilizza invece il codice come suggerito di seguito.
$.removeCookie('the_cookie', { path: '/' });
if (value === null) { value = '';options.expires = -1;}
, che ciò che va dentro la funzione di elaborazione, in modo che si suppone di eseguire la stessa. (i parametri sono (name, value, options)
)
path
le opzioni nelle opzioni di entrambi i comandi, poiché il valore predefinito è il percorso della pagina corrente. Prova impostando come root del tuo dominio entrambi in tutti i punti in cui il cookie viene letto e scritto:$.cookie('name', value, {path:'/'})
$.removeCookie('cookie_name')
fa.
Puoi provare questo:
$.removeCookie('the_cookie', { path: '/' });
Puoi anche eliminare i cookie senza utilizzare il plugin jquery.cookie:
document.cookie = 'NAMEOFYOURCOOKIE' + '=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
è il problema dell'incomprensione dei cookie. I browser riconoscono i valori dei cookie non solo per le chiavi, ma confrontano anche il percorso e il dominio delle opzioni. Quindi i browser riconoscono un valore diverso il cui valore del cookie è "nome" con l'opzione di impostazione del server (percorso = "/"; dominio = "miodominio.com") e la chiave è "nome" senza alcuna opzione.
Prova questo
$.cookie('_cookieName', null, { path: '/' });
Il {percorso: '/'} fa il lavoro per te
Ha funzionato per me solo quando è path
stato impostato, ovvero:
$.cookie('name', null, {path:'/'})
Quello che stai facendo è corretto, il problema è altrove, ad es. Il cookie viene impostato di nuovo in qualche modo all'aggiornamento.