Ich möchte JQuery verwenden, um Cookies zu löschen. Ich habe es versucht
$.cookie('name', '', { expires: -1 });
Dann aktualisiere ich die Seite und der Cookie ist noch da:
alert('name:' +$.cookie('name'));
Warum? Vielen Dank
jquery
cookies
jquery-cookie
user319854
quelle
quelle
Antworten:
Um ein Cookie mit JQuery zu löschen, setzen Sie den Wert auf null:
Bearbeiten: Die endgültige Lösung bestand darin, die
path
Eigenschaft beim Zugriff auf das Cookie explizit anzugeben , da das OP von mehreren Seiten in verschiedenen Verzeichnissen auf das Cookie zugreift und daher die Standardpfade unterschiedlich waren (dies wurde in der ursprünglichen Frage nicht beschrieben). Die Lösung wurde in der folgenden Diskussion entdeckt, was erklärt, warum diese Antwort akzeptiert wurde - obwohl sie nicht korrekt war.Bei einigen Versionen von jQ-Cookies setzt die obige Lösung das Cookie auf den String null. So wird der Cookie nicht entfernt. Verwenden Sie stattdessen den unten vorgeschlagenen Code.
quelle
if (value === null) { value = '';options.expires = -1;}
, das, was in der Verarbeitungsfunktion enthalten ist, also sollen sie dasselbe ausführen. (Parameter sind(name, value, options)
)path
die Optionen in den Optionen explizit auf beide Befehle festlegen , da standardmäßig der Pfad der aktuellen Seite verwendet wird. Testen Sie, indem Sie das Stammverzeichnis Ihrer Domain an allen Stellen festlegen, an denen der Cookie gelesen und geschrieben wird:$.cookie('name', value, {path:'/'})
$.removeCookie('cookie_name')
tut.Sie können dies versuchen:
Quelle: https://github.com/carhartl/jquery-cookie#readme
quelle
Sie können Cookies auch löschen, ohne das Plugin jquery.cookie zu verwenden:
quelle
Es ist das Problem des Missverständnisses von Cookies. Browser erkennen Cookie-Werte nicht nur für Schlüssel, sondern vergleichen auch den Optionspfad und die Domäne. Browser erkennen also unterschiedliche Werte, welche Cookies diesen Schlüssel als 'Name' mit der Servereinstellungsoption (Pfad = '/'; Domäne = 'mydomain.com') und als Schlüssel 'Name' ohne Option bezeichnen.
quelle
Versuche dies
Die {path: '/'} erledigen den Job für Sie
quelle
Arbeitete nur für mich , wenn
path
eingestellt wurde, dh:quelle
Was Sie tun, ist richtig, das Problem liegt woanders, z. B. wird der Cookie beim Aktualisieren irgendwie wieder gesetzt.
quelle