2011-11-15 4 views
0

私は少し混乱していると思います。私はdomainB.com/secondsubfolderにあるswfを、domainA.com/firstsubfolderにあるSWFからロードしています。AS3とクロスドメイン

私はいつもcrossdomain.xmldomainA.com/firstsubfolderの "loader" swfの近くに置きます。

ロードされたコンテンツのルートにcrossdomain.xmlを入れた場合を除いて、動作しないようです。domainB.com/crossdomain.xml

私はいつもそれを間違っていたのですか、または何らかのサーバー設定のためですか?ロードされたコンテンツに別のドメインを使用します(例:別のサーバーのdomainB_beta.com/secondsubfolderは通常どおり動作します。

どこでこれらの設定を変更する必要がありますか?サーバーの設定に依存するのですか、何か間違っていますか?これは、ローダActionScriptコードである

import flash.display.Loader; 
import flash.net.URLRequest; 
import flash.system.Security; 

Security.allowDomain("domainB.com"); 
var context:LoaderContext = new LoaderContext(); 
context.securityDomain = SecurityDomain.currentDomain; 

var loaderMain:Loader = new Loader(); 
loaderMain.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); 
loaderMain.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, errorHandler); 
loaderMain.load(new URLRequest('domainB/secondsubfolder/file.swf'),context); 
addChild(loaderMain); 

function errorHandler(event:ErrorEvent):void { 
trace("errorHandler says: " + event); 

} 

答えて

2

この例に基づいて、あなたのクロスドメインファイルはhttp://domainb.com/crossdomain.xmlにする必要があります。あなたはそこにいるようですが、それは古いスタイルです。

<cross-domain-policy> 
    <site-control permitted-cross-domain-policies="master-only"/> 
    <allow-access-from domain="*"/> 
    <allow-http-request-headers-from domain="*" headers="*"/> 
</cross-domain-policy> 

また、あなたでSecurity.allowDomainているセットが、同様にSecurity.allowInsecureDomainを追加してみてください:おそらくのようなものにそれをアップデートしてみてください。あなたはあなたの接続でHTTPSを使用していません。

最後に、フィドラーまたはチャールズを実行して、ネットワークトラフィックを監視してみてください。 crossdomain.xmlリクエストを探し、どのような応答を返すのかを確認します。これは、被験者にいくつかの追加の光を当てることができます。

+0

thnx ...試してみて、結果を投稿しよう! –