2011-07-29 10 views
13

JavaScriptでクッキーを削除する方法は、有効期限を過去に設定することです。これで少なくともFirefoxではクッキーが実際に削除されるわけではありません。これは単にブラウザを閉じるとクッキーが削除されることを意味します。*本当に* JavaScriptを使ってクッキーを削除する

これは問題です。私たちは、潜在的に多くのサイトからウェブページをアーカイブし、このすべてのコンテンツを当社のサーバーに保存した製品を持っています。また、ページが適切にレンダリングされるように、すべてのjも含めます。しかし、しばしばクッキーはjsによって設定され、ページがサーバーにキャッシュされているので、これらのクッキーは私たちのドメインの下に設定されます。

アーカイブされた数十のサイトからのクッキーが私たちのドメインの下に蓄積されます。最終的にCookieヘッダが最大コンテンツ長を超え、HTTP 400エラーコードが発生します。

クライアントがほとんど企業環境にあるため、マシンを再起動したり、ブラウザを閉じることはありません。数か月はそのままにしておくことができます。したがって、この「ソフト」削除は、少なくとも確実には機能しません。

javscriptでセッション内のCookieを物理的に削除する方法はありますか?あるいは、それらを止める方法がありますか?

+0

ヘッダーが最大コンテンツ長を超えるのはなぜですか? – ninjagecko

+1

は、ユーザーがアーカイブしているサイトでGoogleのドメインにCookieが設定されているためです。より多くのサイトがアーカイブされるほど、より多くのクッキーが設定されます。より明確にするには、ユーザーはhttp://ourdoamin.com/page-from-archived-site.htmlのようなアーカイブページを表示します。したがって、このページでjsにクッキーが設定されている場合は、ourdomain.comの下に設定されます。 –

+0

「ユーザーがアーカイブしているサイトは、私たちのドメインでCookieを設定しています」を明確にしてください。あなたはおそらく認識しているように、他のドメインがあなたのドメインの下でクッキーを設定することは不可能であるため、iframeや何かを使用していなければなりません。 1つのクッキーを使用するだけで何が問題になりますか? – ninjagecko

答えて

4

これはできません。期間。私は解決策を見つけることなく数週間この問題に取り組んできました。

ゲッター/セッターcookieを発明した人は%insert_painful_punishment_here%である必要があります。

特に、インターネットエクスプローダーは、クッキーの削除に関しては獣です。正確な問題は覚えていませんが、httpsとCookieの名前には;が含まれていると思います。

私が提供できるのは回避策です:あなたの400応答で、「ブラウザを再起動してください」などの応答本体を送信してください。

+0

今は非常に有望なアイデア - ありがとう! –

0

新しいものでクッキーを上書きすることができます。

+0

しかし、Cookieはまだ存在し、コンテンツを ""に設定してもCookieヘッダーの長さに貢献します。 –

+0

次に、1つのクッキーを使用します。 – ninjagecko

3

過去の有効期限の設定に加えて、値を空の文字列に設定します。これにより、少なくともクッキーのサイズが即座に縮小されます。

クッキーはすべてのブラウザで直ちに削除する必要があると思います。たとえば、ウェブサイトからログアウトすると、サイトにログインしていることを示すCookieを削除するためにブラウザを閉じる必要はありません。これが起こっていない場合は、Firefoxのバグを調べて、おそらく新しいバグを開くことをお勧めします。

私のウェブサーバーを見て、最大コンテンツの長さをすでに設定されているものより高く設定するかどうかを確認したいと思います。

+0

はい、私たちはこれをやっていますが、長いクッキー名は助けになりません:) –

-2

「我々はこの問題を持っているのiframeを使用していないからです。キャッシュされたページは、当社のサーバーによってレンダリングされているので、任意のクッキーは、当社のドメインの下にセットされます。」あなたはクッキー設定れるjavascriptに対する制御がない場合は - OP

(非常に奇妙に思える、なぜあなたはコントロールを持っていない?)、あなたは常に読んで、クッキーを空にすることができ、データをダンプ(サーバー側、またはおそらくHTML5クライアントストレージが望ましい)別のデータベースに転送します。

+0

OPの問題に具体的に取り組んだとき、説明なしで、素敵な、複数の下降声... – ninjagecko

関連する問題