web-dev-qa-db-fra.com

jQuery, supprimer les cookies

Je souhaite utiliser JQuery pour supprimer les cookies. J'ai essayé ça

$.cookie('name', '', { expires: -1 });

Ensuite, j'actualise la page et le cookie est toujours là:

alert('name:' +$.cookie('name'));

Pourquoi? Merci

86
user319854

Pour supprimer un cookie avec JQuery, définissez la valeur sur null:

$.cookie("name", null, { path: '/' });

Edit: La solution finale consistait à spécifier explicitement la propriété path lors de l’accès au cookie, car le terminal opérateur accède au cookie à partir de plusieurs pages de différents répertoires. Par conséquent, les chemins par défaut étaient différents ( cela n’a pas été décrit dans la question initiale). La solution a été découverte dans la discussion ci-dessous, ce qui explique pourquoi cette réponse a été acceptée - même si elle n’est pas correcte.

Pour certaines versions de jQ cookie, la solution ci-dessus définit le cookie sur string null. Donc, ne pas supprimer le cookie. Utilisez plutôt le code suggéré ci-dessous.

$.removeCookie('the_cookie', { path: '/' });
139
Chadwick

Vous pouvez essayer ceci:

$.removeCookie('the_cookie', { path: '/' });

source: https://github.com/carhartl/jquery-cookie#readme

69
Gert-Jan Rebel

Vous pouvez également supprimer les cookies sans utiliser le plugin jquery.cookie:

document.cookie = 'NAMEOFYOURCOOKIE' + '=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
15
falnyr

c'est le problème de l'incompréhension du cookie. Les navigateurs reconnaissent les valeurs des cookies non seulement pour les clés, mais aussi pour les options chemin et domaine. Les navigateurs reconnaissent donc différentes valeurs: les valeurs de cookie de cette clé sont "nom" avec l'option de paramétrage du serveur (chemin = "/"; domaine = "mydomain.com") et la clé est "nom" sans option.

4
logan kim

A travaillé pour moi seulement quand path a été défini, c'est-à-dire:

$.cookie('name', null, {path:'/'})
1
Andron

Essaye ça

 $.cookie('_cookieName', null, { path: '/' });

Le {chemin: '/'} fait le travail pour vous

1
Otto Kanellis