2

JavaScriptを介して開発しているフレームワークにCookieが設定されています(フレームワークはhttps://github.com/carhartl/jquery-cookieを使用しているようです)。このフレームワーク内で開発していますが、フレームワークコードにアクセスできず、JavaScriptを介してCookieを削除したいと考えています(このフレームワーク内のサーバーサイドにはアクセスできません)。

Chromeを介してCookieを検査すると、それについて多くのことがわかります。

"domain": "www.example.com", 
"expirationDate": 1667235180, 
"hostOnly": true, 
"httpOnly": false, 
"name": "my_cookie", 
"path": "/", 
"secure": false, 
"session": false, 
"storeId": "0", 
"value": "123456789"

hostOnlyですが、ドメインフィールドで設定された同じドメインから削除しようとしているので問題ありません。

次のコードを使用して削除しようとしています。

function clearCookie(name, domain, path) {
      var domain = domain || document.domain;
      var path = path || "/";
      document.cookie = name + "=; expires=" + +new Date + "; domain=" + domain + "; path=" + path;
};

clearCookie('my_cookie', 'www.example.com', '/');

ただし、これを行うと、ドメインが「.www.example.com」(余分なピリオドに注意)の新しいセッションCookieが作成され、現在のCookieは削除されません。

私は何が欠けていますか?

4

3 に答える 3

4

古い質問ですが、私はこれに遭遇し、問題を発見しました。

hostOnly Cookieがある場合は、それを変更/期限切れにするときにドメインを指定しないでください。

ほとんどのCookie処理ライブラリは、ドメインが提供されていない場合、ドメインを自動指定するため、hostOnlyCookieを編集することは不可能ではないにしても困難です。

于 2013-07-05T15:50:32.963 に答える
1

有効期限の設定方法に問題があると思います。JavaScriptでCookieを設定するには、日付にUTC/GMT形式が必要です。この関連する答えを参照してください:

Cookieを設定するときに有効期限を指定するときに使用できる日付形式はどれですか?

于 2013-03-18T17:59:45.997 に答える
0

javascriptを介して実際にCookieを削除することはできません。あなたがすることは、既存のクッキーを期限切れに設定してから、ブラウザがその破壊を処理できるようにすることです。jquery-cookieソースを確認すると、実際にはCookieを破棄する機能があり、ここで使用して単純化できることがわかります。

ここでの簡単な答えは、既存のフレームワークの削除機能を使用することです。

$.removeCookie(key)
于 2013-03-18T17:19:01.490 に答える