アプリケーションがあり、Cookieに情報を保存する必要があります。インデックスページがあり、Cookieにいくつかの情報(変数名など)を入れています。インデックスページCookieにパスがあります /Main/
。別のページでこのCookieを読み、必要に応じて変更する必要があります。しかし、別のページのCookieパスは /Main/info/
。ブラウザは新しいCookieを作成するだけですが、それを上書きして同じCookieをパスで使用する必要があります /Main/
すべてのページ。 どうやってやるの?
回答:
回答№1は2追加 パス= /; または、Cookieを作成するときにパスを指定します。これにより、ブラウザがドメインごとに重複したCookieを作成するのを防ぎます。
コメントの一つに、Googleを見ればChromeとCookieの表示方法は、パスを示します。パスを指定せずに同じCookie名を使用すると、それぞれにCookieが作成されます。
注:Internet Explorerは同じことを行いません。ドメインごとに1つのテキストファイルがあります。
回答№2の場合は0
2番目のページでは、Cookieパスを「/ Main」に明示的に設定する必要があります。
document.cookie = "name=value; path=/Main/";
回答№3の場合は0
すべてに対して1つのパスを定義する必要があります SET-COOKIE
リクエストされたリソースのサブパスに依存しないコマンド(例: path=/Main
)。一般に、可能な限り最長のパスを使用する必要があります...(ただし、同じCookieを使用してすべてのリソースの親パスを取得する必要があります)。
ルート(/
)は、アプリケーションが完全なドメインを所有していて、異なる最上位パス(例: /main/...
, /secondary/...
そして /unimportant/...
)
なぜ:
- セキュリティ上の理由
- 同じドメイン上の他のアプリケーションによる副作用の防止