こんにちは、コブラです。
タイトルの通り、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
こんにちは、コブラです。
HTML作ってて、
Javascriptで「element.dispatchevent is not a function」というエラーが出ました。
なんのこっちゃ分からず調べると、
どうやらprototype.jsとjQuery.jsが競合しているらしい。
どっちも使いたいのにー!と思っていたら、
解決策がありました!
この後者のやり方を採用しました。
<script><!--
jQuery.noConflict();
jQuery(document).ready(function($){
// ここでは、$はjQueryとして使えます。
});
// ここでは、$はprototype.jsの動作をします。
//-->
</script>
これは便利!
Javascriptエラーって何となく気持ち悪いですよねぇ。
JavaScript, jQuery, 社員:cobra
最近のコメント