web-dev-qa-db-ja.com

jquery、Cookieの削除

JQueryを使用してCookieを削除します。私はこれを試しました

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

次に、ページを更新しますが、Cookieはまだそこにあります。

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

どうして?ありがとう

86
user319854

JQueryでCookieを削除するには、値をnullに設定します。

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

編集:最終的な解決策は、Cookieにアクセスするたびにpathプロパティを明示的に指定することでした。元の質問には記載されていませんでした)。解決策は以下の議論で発見されました。これは、正しくないにもかかわらず、この答えが受け入れられた理由を説明しています。

一部のバージョンjQ Cookieの場合、上記のソリューションはCookieを文字列nullに設定します。したがって、Cookieは削除されません。代わりに、以下に提案されているコードを使用してください。

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

これを試すことができます:

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

ソース: https://github.com/carhartl/jquery-cookie#readme

69
Gert-Jan Rebel

Jquery.cookieプラグインを使用せずにCookieを削除することもできます。

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

それはクッキーの誤解の問題です。ブラウザは、キーだけでなくオプションのパスとドメインを比較するためのCookie値も認識します。そのため、ブラウザーは、サーバー設定オプション(path = '/'; domain = 'mydomain.com')でキーが 'name'であり、キーがオプションのない 'name'であるCookie値の異なる値を認識します。

4
logan kim

私のために働いたのみpathが設定されたとき、すなわち:

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

これを試して

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

{path: '/'}はあなたのために仕事をします

1
Otto Kanellis