我正在构建一个获取以下rss提要并显示它的应用程序。http://www.facebook.com/feeds/page.php?id=94572408519&format=rss20它在本地工作得很好,但当我上传swf在线停止工作。我已经添加了一个跨域策略文件,但它没有帮助。奇怪的是,Twitter Feed加载正常(本地和在线)。什么好主意吗?这是我的代码:
override protected function initContent():void {
super.initContent();
Security.allowDomain("https://facebook.com")
setContent("Loading data...");
var req:URLRequest = new URLRequest("https://facebook.com/feeds/page.php?id=94572408519&format=rss20");
var l:URLLoader = new URLLoader();
l.addEventListener(Event.COMPLETE, onContentLoad);
l.addEventListener(IOErrorEvent.IO_ERROR, onContentLoadErr);
l.load(req);
}
private function onContentLoad(event:Event):void {
var loadedXml:XML = new XML(event.target.data);
//trace(xml.item);
loadedXml.ignoreWhitespace=true;
var len=loadedXml.channel.item.length();
var content:String = "";
for (var i:int = 0; i < len; i++) {
if (loadedXml.channel.item[i].link){
content += "<a href='" + loadedXml.channel.item[i].link + "' target='_blank'>";
content += loadedXml.channel.item[i].title+"</a>";
content += "nn";
}
}
setContent(content);
}
托管web服务的站点决定其服务的安全限制。因此,Facebook需要一个crossdomain.xml,以便从网站上运行的任何flash都能连接到它们。
我构建了一个小类,通过使用浏览器的javascript绕过flash的限制。与Flash相比,使用JSONP加载的限制更少,因此它很乐意充当Flash的代理,从客户端加载跨域服务。
JSONP。As - http://gist.github.com/1204728