2010-12-05 13 views
0

私はいくつかのHTML投稿を作成するswfを持っています。ローカルでswfを実行してコンパイルすると、自分のドメインにホストされているPHPコードへの投稿が正常に作成されます。しかし、swfを自分のドメインにアップロードし、埋め込みタグを変更してホストされたswfへの完全修飾パスを取得すると、swfは正しくロードされますが、PHPスクリプトにHTMLポストを作成します。私はそれに完全修飾URLを持つ埋め込みタグを持っている理由は、ここでの私の目標は、さまざまなサイトのHTML埋め込みコードを配置することができるということです。Flex HTML Post Error - セキュリティ上の問題?

私は1つのリモートサイトで作業しており、そこにはワイルドカードcrossdomain.xmlファイルがあります。しかし、crossdomain.xmlをホストされたサイトやローカルのコンピュータに適用しようとすると、完全に修飾されたURLで埋め込みを使用すると何も実行されません。ちょうど良い。

私はこれがcrossdomain.xmlファイルに関連していると感じますが、私はセキュリティモデルのいくつかの側面を理解していないと思います。

私の目標は、他の多くのサイトに完全なswf(たとえば、 "http://www.abc.com/myswf.swf")で埋め込みHTMLコードを貼り付けることができるようにすることです。それは私のホームサイト(http://home.com)に標準的なHTML投稿を作成します。

ありがとうございました。私は遠く離れたところにいる。遠く離れた1つのサイトで働いていると言ったようだが、どうやったらいいかわからない。埋め込みコードを投稿する他のサイトはすべて失敗します。

答えて

1

[OK]を、私はあなたがちょうど与えた例に従って、私の答えを編集しています。

エラーレポートによると、swfからswfをホストしているサイトには許可されていないExternalInterface呼び出しが問題になります。

コールは同じサンドボックス内で行われるため、2番目の例では機能します。

がドキュメントから撮影:

SecurityError — The containing environment belongs to a security sandbox 
    to which the calling code does not have access. To fix this problem, 
    follow these steps: 
    In the object tag for the SWF file in the containing HTML page, 
    set the following parameter: 
    <param name="allowScriptAccess" value="always" /> 

    In the SWF file, add the following ActionScript: 
    flash.system.Security.allowDomain(sourceDomain) 

あなたはまた、

+0

...あなたの埋め込みコードにallowNetworkingではパラメータをチェックする必要がありUnforunatelyそれはオプションではありません。 swfをすべてのサイトにアップロードするオプションはありません。ここでは何が起こっているのライブの例です...だからここでは、PHPスクリプトと通信することはできません外部サイトのリンクです。 http://ryan.d3-systems.com/?p=148ここで、正確に同じスクリプトが正しく動作しています(http://securedmark.com/demo.php)。私はここにcrossdomain.xmlがあることがわかります。http://ryan.d3-systems.com/crossdomain.xmlとここhttp://d3-systems.com/crossdomain.xml。だから私はそれがホスティングされたサイトでうまく動作するので、私はここで間違って何をしているのか理解できない。 – Ryan

+0

それはまさに問題でした。パトリックスのおかげで、私はそれを逃したとは思えません。 – Ryan