97

jQuery を使用して Cookie を削除したい。私はこれを試しました:

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

しかし、ページを更新すると、Cookie がまだ残っています。

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

なんで?

4

7 に答える 7

154

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

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

編集:最終的な解決策は、Cookie にアクセスするたびにプロパティを明示的に指定することでしたpath。これは、OP が異なるディレクトリの複数のページから Cookie にアクセスし、デフォルトのパスが異なるためです (これは元の質問では説明されていません)。解決策は以下の議論で発見されました。これは、正しくないにもかかわらず、この回答が受け入れられた理由を説明しています。

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

$.removeCookie('the_cookie', { path: '/' });
于 2010-09-08T20:51:14.617 に答える
72

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

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

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

于 2013-06-05T11:32:51.790 に答える
15

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

document.cookie = 'NAMEOFYOURCOOKIE' + '=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
于 2013-05-21T16:30:57.977 に答える
4

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

于 2011-10-03T10:01:22.547 に答える
1

が設定されている場合にのみ機能しました。path

$.cookie('name', null, {path:'/'})
于 2014-04-30T12:09:54.390 に答える
1

これを試して

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

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

于 2013-04-06T01:33:05.647 に答える
-3

あなたがしていることは正しいです。問題は別の場所にあります。たとえば、更新時に何らかの形で Cookie が再度設定されています。

于 2010-09-08T21:06:04.400 に答える