社員ブログ
HOME  社員ブログ
ホーム > HTML, JavaScript, jQuery, PHP, 社員:cobra > IE iframeを用いてクロスドメインするとcookieが動かない?

IE iframeを用いてクロスドメインするとcookieが動かない?

2012年07月11日 12時59分16秒

こんにちは、コブラです。

 

タイトルの通り、IEでiframeを使って別のドメインのページを読み込むと、

その中でCookieが思うように使えませんでした。

 

こんな感じ。

 

Parent.html

└ (iframe src=)Child.html → Cookieの読み書き →NG!!

 

Cookieの指定が間違ってる?親フレームのCookie見てる?

でもIE以外は動作してるよ?

???・・・(°Д°;)・・・???

という感じでしたが、

調べたらすぐに原因が分かりました。

 

IEは、セキュリティの観点からクロスドメインによるCookie操作を拒否してたんですね!(このヤロウ!)

 

で、それを許可するには、

ざっくり言うとCookieを使う前にコンテンツポリシーのような宣言をします!

 

PHPの場合は

<?php header("P3P: CP='UNI CUR OUR'"); ?>

とヘッダーで書くだけ。

簡単でした。

これで

Parent.html

└ (iframe src=)Child.html → Cookieの読み書き →OK♪

となりました。

 

 

参考にさせてもらったサイトさん

P3Pコンパクトポリシーをコピペするのが流行らないことを祈る

IEでクロスドメインのiframe内のcookieが取れない

HTML, JavaScript, jQuery, PHP, 社員:cobra

  1. コメントはまだありません
  1. トラックバックはまだありません