jQuery を使用して Cookie を削除したい。私はこれを試しました:
$.cookie('name', '', { expires: -1 });
しかし、ページを更新すると、Cookie がまだ残っています。
alert('name:' +$.cookie('name'));
なんで?
jQuery を使用して Cookie を削除したい。私はこれを試しました:
$.cookie('name', '', { expires: -1 });
しかし、ページを更新すると、Cookie がまだ残っています。
alert('name:' +$.cookie('name'));
なんで?
JQuery で Cookie を削除するには、値を null に設定します。
$.cookie("name", null, { path: '/' });
編集:最終的な解決策は、Cookie にアクセスするたびにプロパティを明示的に指定することでしたpath
。これは、OP が異なるディレクトリの複数のページから Cookie にアクセスし、デフォルトのパスが異なるためです (これは元の質問では説明されていません)。解決策は以下の議論で発見されました。これは、正しくないにもかかわらず、この回答が受け入れられた理由を説明しています。
一部のバージョンの jQ cookie では、上記のソリューションは cookie を文字列 null に設定します。したがって、Cookie を削除しません。代わりに、以下に提案されているコードを使用してください。
$.removeCookie('the_cookie', { path: '/' });
これを試すことができます:
$.removeCookie('the_cookie', { path: '/' });
jquery.cookie プラグインを使用せずに Cookie を削除することもできます。
document.cookie = 'NAMEOFYOURCOOKIE' + '=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
クッキーの誤解の問題です。ブラウザは、キーだけでなく、オプションのパスとドメインを比較するための Cookie 値も認識します。そのため、ブラウザーは、キーがサーバー設定オプション (path='/'; domain='mydomain.com') の「name」であり、キーがオプションなしの「name」である Cookie 値の異なる値を認識します。
が設定されている場合にのみ機能しました。path
$.cookie('name', null, {path:'/'})
これを試して
$.cookie('_cookieName', null, { path: '/' });
{ path: '/' } はあなたのために仕事をします
あなたがしていることは正しいです。問題は別の場所にあります。たとえば、更新時に何らかの形で Cookie が再度設定されています。