一回も披露したことのない豆知識

同一ページに<form>と<iframe>があり、<form>のPOST先をその<iframe>にしています。
このとき、IE6のみPOSTできない条件があり困っております。
なんでも結構ですので、アドバイスいただけましたら助かります。

その条件は、
・ページのURLとiframeのURLのスキーマとホスト名が一致していること
です。

具体的には
HTMLが
<form name="formname" action="https://example.com/" method="post" target="iframename">
<input type="image" name="" src="image/button.gif" />
</form>
<iframe name="iframename" src="https://example.com/page01"></iframe>
の場合、

■POSTがOKなパターン
ページのURL=https://example.com/

■POSTがNGなパターン
ページのURL=http://example.com/
ページのURL=https://www.example.com/

よろしくお願いしますm(_ _)m

A 回答 (2件)

インターネットオプション


⇒レベルのカストマイズ
⇒暗号化されていないフォームデータの送信
ダイアログ表示/有効/無効
と選択肢がありますが、無効になっていると
IFRAMEに関係なく、http://example.com/ からのPOSTに失敗するのでは?
(他にもあやしいのがありそうですが。。。)

でも、
ページのURL=https://www.example.com/
がだめな理由は別にありそうですね。
(ひょっとして、IFRAMEなしで単独にhttps://www.example.com/を動かしてみてもだめってことないですよね?)
    • good
    • 0
この回答へのお礼

ご回答いただきましてありがとうございます!
「暗号化されていないフォームデータの送信」
につきましては有効になってました。
ただ、その下にありました
「異なるドメイン間のウィンドウとフレームの移動」
というものが無効になっており、これを有効にすることで
POSTすることができました!
ただ、IE8ではこれがデフォルトで有効になっており、これを無効にしてもちゃんとPOSTできるのです。
同じ設定でもIE6とIE8では動作が違うようです。
この設定について調べてみましたが詳細が出てきませんでした。
ちなみにhttps://www.example.com/は単独で動きます。
貴重なヒントをいただきましてありがとうございます!
引き続き調査してみたいと思います。

お礼日時:2011/05/10 05:56

><form name="formname" action="

https://example.com/" method="post" target="iframename">
URLでpostする必要があるの?
相対パスでは駄目なのか?

それとIE6を考慮する必要が未だにあるのか?
MSでのWindows2000のサポートが終了した時点(去年)でMSがサポートする一番古いOSはXPになったけど
そのXPではIEは8まで利用できる。
旧世代のIEである6はそろそろサポートから外した方が良いでしょう。(今後のデザイン時のコーディングでIE6も考慮する必要性などの問題も)

この回答への補足

早速ご回答ありがとうございます!

>URLでpostする必要があるの?

はい、ページとPOST先が別ドメインになりますので。。。

>それとIE6を考慮する必要が未だにあるのか?

おっしゃるとおりですが、IE6対応も仕様となってますので。。
でもIE6ももうすぐ消えるのだなと思うと、少し晴れやかな気分です!

補足日時:2011/05/03 07:54
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!