在Flash中阅读facebook rss(跨域)

时间:2011-07-14 11:26:48

标签: flash facebook rss cross-domain

我正在构建一个应用程序来获取以下rss feed并显示它。 http://www.facebook.com/feeds/page.php?id=94572408519&format=rss20 它本地工作正常,但当我上传瑞士法郎在线停止工作。 我已经添加了一个跨域策略文件,但没有帮助。奇怪的是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 += "\n\n";

            }
        }
        setContent(content);
    }

1 个答案:

答案 0 :(得分:0)

托管Web服务的站点决定其服务的安全限制。所以Facebook需要一个crossdomain.xml,以便从网站运行的任何flash连接到它们。

我使用浏览器的javascript构建了一个小类来解决flash的限制。使用JSONP加载的限制比Flash少,因此很乐意充当Flash的代理,从客户端加载跨域服务。

JSONP.as - http://gist.github.com/1204728