2009-07-06 9 views
2

GravatarsをFlashに読み込もうとしています。幸いなことに、彼らはhttp://en.gravatar.com/avatar/crossdomain.xml私のコードFlash Crossdomain.xmlの問題

でcrossdomain.xmlファイルを提供:

Security.loadPolicyFile("http://en.gravatar.com/avatar/crossdomain.xml"); 
var loader:Loader = new Loader(); 
loader.load(new URLRequest("http://en.gravatar.com/avatar/" + gravatar + "?s=35&d=identicon")); 

しかし、私はまだ、このエラーを取得しています:

SecurityError: Error #2123: Security sandbox violation: LoaderInfo.content: [...] cannot access http://en.gravatar.com/avatar/97fbce86a5bbc520450168603172cd9e?s=35&d=identicon . No policy files granted access.
at flash.display::LoaderInfo/get content()
at PiecePlayerSmall/onLoadComplete()

は、私はまた、Flashファイルがあるトラフィックを監視し送信。それは要求しています:これを取得するための

任意の提案仕事をしたり、gravatar.comへのリクエスト数を減らしたりします。

EDIT: 次のコードは動作しますが、ヤコブ

のおかげ
Security.loadPolicyFile("http://en.gravatar.com/avatar/crossdomain.xml"); 
var context:LoaderContext = new LoaderContext(); 
context.checkPolicyFile = true; 
context.applicationDomain = ApplicationDomain.currentDomain; 
var request:URLRequest = new URLRequest(
    "http://en.gravatar.com/avatar/" + gravatar + "?s=35&d=identicon"); 
var loader:Loader = new Loader(); 
loader.load(request, context); 
this.addChild(loader); 

注:私はすることにより、同様の問題を中心に持ってEvent.COMPLETE

+0

私のリクエストURLが現在のドメインにない場合はどうなりますか? –

+0

あなたの現在のドメインでない場合は、自分のリソースにアクセスする権限がないことを意味します。この場合、crossdomain.xmlをインライン化するためにいくつかのハックメソッドを実行する必要があります。 –

答えて

7

で直接コンテンツにアクセスしようとしないでくださいLoaderContextを使用してください。これを行う方法の例は次のとおりです。

var context:LoaderContext = new LoaderContext(); 
context.checkPolicyFile = true; 
context.securityDomain = SecurityDomain.currentDomain; 
context.applicationDomain = ApplicationDomain.currentDomain; 
var request:URLRequest = new URLRequest(
    "http://en.gravatar.com/avatar/" + gravatar + "?s=35&d=identicon"); 
var loader:Loader = new Loader(); 
loader.load(request, context); 
+0

これで新しいエラーが発生しました。エラー#2044:未処理のSecurityErrorEvent:。 text =エラー#2048:セキュリティサンドボックス違反:[...]はhttp://en.gravatar.com/avatar/97fbce86a5bbc520450168603172cd9e?s=35&d=identiconからデータを読み込むことができません。 –

+1

これは私の問題を解決しました! SecurityDomainを追加しないでください。状況が悪化するだけです。また、別のエラーをスローするローダーのコンテンツに直接アクセスすることはできません。 –

+0

@ジョンあなたはどのようにコンテンツにアクセスする必要がありますか? – cregox

関連する問題