Ich versuche, Gravatars in Flash zu laden. Zum Glück, wenn sie eine crossdomain.xml Datei auf http://en.gravatar.com/avatar/crossdomain.xml
Flash Crossdomain.xml Probleme
Mein Code:
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"));
Aber ich bin immer noch diesen Fehler:
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()
ich überwacht auch den Verkehr der Flash-Datei ist Senden. Es anfordernden:
- Meine Domain crossdomain.xml Datei
- "http://en.gravatar.com/avatar/crossdomain.xml"
- "http://en.gravatar.com/crossdomain.xml"
- "http://en.gravatar.com/"
- dann, http://en.gravatar.com/avatar/97fbce86a5bbc520450168603172cd9e?s=35&d=identicon
Irgendwelche Vorschläge für diese bekommen arbeiten und die Anzahl der Anfragen an gravatar.com reduzieren.
EDIT: Der folgende Code, dank Jacob
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);
Hinweis funktioniert: Versuchen Sie nicht, den Inhalt direkt in der Event.COMPLETE
was passiert, wenn meine URL nicht auf meiner aktuellen Domäne ist? –
Wenn es sich nicht um Ihre aktuelle Domäne handelt, haben Sie keine Berechtigung, auf ihre Ressourcen zuzugreifen. In diesem Fall müssen Sie einige Hack-Methoden ausführen, um die crossdomain.xml inline zu modifizieren. –