1

これは興味深い問題です。既存のアプリケーションに機能を導入すると言われています。アプリケーションは、ユーザーシステムにCookieを書き込む前に、ユーザーの同意を得る必要があります。(私のアプリケーションがユーザーシステムにいくつかのCookieを書き込むことは暗黙的です)。

したがって、アプリケーションへのすべてのリクエストがインターセプトされるように設計されています。リクエストごとに、アプリケーションにCookieの書き込みを要求するフラグ(このフラグはIPと呼ばれる特別なページから送信されます)があるかどうかを確認します。特別なCookieは、ユーザーのマシン上の同意Cookieを示します。

これで、アプリケーションがユーザーのマシンに同意Cookieを認識しない場合、アプリケーションはユーザーをそのURLを使用してIPにリダイレクトします。IPには、[Cookieを受け入れる]ボタンがあります。ユーザーがCookieを受け入れると、ajaxリクエストがサーバーに送信され、そこでコードがCookieを書き込むフラグを検出し、ユーザーのブラウザーにCookieを書き込みます。

Cookieを書き込むためのコードが実行されていることがわかります。この後の予想される動作は、通常の方法でリクエストを処理することです。ただし、残念ながら、IPにリダイレクトされます。

一部のブラウザでCookieが削除されていると強く感じています。ここで何が間違っているのか提案してください。また、ブラウザでCookieが削除されていることを確認する方法も教えてください。

また、P3Pヘッダーと関係があると感じています。助けてください。

4

1 に答える 1

1

2つのことがあります:

  1. ブラウザに関係なく、毎回IPにリダイレクトされます。
  2. いくつかのブラウザではアプリケーションに慣れていますが、残りのブラウザではそうではありません。

ケース1:応答にP3Pヘッダーを追加する必要があります。http://viralpatel.net/blogs/2008/12/how-to-set-third-party-cookies-with-iframe.htmlを確認してください

ケース2:最近のバージョンのMozilla Firefox(12)のようなブラウザの中には、リダイレクトの場合に応答ステータスをキャッシュするものがほとんどない可能性があります。デフォルトでは、リダイレクトは永続的なリダイレクト、つまりステータスコード302です。この場合、IPはMozillaでそれ自体にリダイレクトし続けます。

解決策:一時的なリダイレクト、つまりステータスコード307を使用する必要があります。

于 2012-05-24T16:24:20.453 に答える