質問

jqueryを使用してクッキーを削除したいと思います。私はこれを試しました

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

それから私はページを更新すると、クッキーはまだそこにあります:

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

なんで?ありがとう

役に立ちましたか?

解決

jQueryでクッキーを削除するには、値をnullに設定します。

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

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

一部のバージョンのJQ Cookieの場合、上記のソリューションはCookieをString Nullに設定します。したがって、Cookieを削除しません。代わりに以下に示すようにコードを使用してください。

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

他のヒント

あなたはこれを試すことができます:

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

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

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

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

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

これを試して

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

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

私のために働いた それだけ いつ path 設定されました、つまり:

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

あなたがしていることは正しいです、問題はどこか別の場所です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top