2012-02-13 9 views
0

PHPスクリプトを呼び出してPOST変数を渡したiframeに埋め込まれたFlashオブジェクトで起きている奇妙な問題が発生しました。Internet Explorer、Flash POST変数とIFRAMES

私は最終的に何が起こっているのかを考え出したと思いますが、私の勘違いが正しいかどうかの明確化を感謝します。

セットアップは複雑のようなものですので、私と一緒に負担してください...

彼女のウェブサイトは、これらのサイトビルダーのセットアップのいずれかを使用していますので、それはそれが何ができるかに少し制限されます。彼女は私のFlashアプリケーションを含めることを望んだができなかったので、回避策として別のドメインにFlashアプリケーションを置き、iframeで埋め込んだ。

Flashアプリケーションの機能は、別のウィンドウを開き、POST変数を渡すPHPスクリプトを呼び出すことです。

Chrome、Safari、Firefoxでは動作します。 IEではPOST変数がポストされていないかのようです。

HTTPスニッファを使用すると、実際に変数が送信されたことが確認できましたが、その結果、PHPスクリプトでは表示されないことが明らかになりました。

ここに2つの異なるドメインがあることを思い出すまで、これは本当にナットを運転していました。

別のドメインのiframeにあるドメインのコンテンツを埋め込む方法を覚えていますか?

私は、それがサーバー側でブロックされるPOSTデータを引き起こしているクロスドメインセキュリティの問題だと思っています。

しかし、それはなぜ他のブラウザでは機能しますか?

ここに私の理論だ...クロムは、Firefox、およびSafariで

は、ブラウザがオリジネーターとしてのIFrame INSIDEページでスクリプトにデータを送信します。したがって、発信元と宛先のスクリプトは同じドメインにあります。

IEでは、ブラウザは、CONTAINERページを発信元としてスクリプトにデータを送信します。この場合、発信元スクリプトと宛先スクリプトは異なるドメインにあり、サーバーはデータをブロックします。

あなたはどう思いますか?それは有効な説明のように聞こえるでしょうか?これはIEの既知の機能ですか?このような状況で、標準準拠のブラウザは何をすべきですか?

UPDATE:

それは問題だけでクロスドメインのためではないことが判明。同じサイトからのiframeコンテンツでも、それはまだ発生します。しかしIEでのみ。奇妙な権利ですか?

答えて

0

私はこれまで、Flashのクロスドメインの問題を取り上げてきましたが、この特定のシナリオには取り組んでいません。彼女のサイトビルダーは、自分のサイトのルートにクロスドメインポリシーファイルを展開できるとは思わないのですか?

ので、あなたがするcrossdomain.xmlを展開しようとすることができた場合:彼女のサイトのルートに...

<cross-domain-policy> 
<allow-access-from domain="*.flashfiledomain.com" secure="false"/> 
</cross-domain-policy> 

をしてて、問題が解決するかどうかを確認します。私はフラッシュファイルとPHPスクリプトが同じドメインにあると仮定していますか?

関連する問題