在Flex中访问RSS源,从Flash Builder 4运行时有效,但在项目联机时无法运行吗?

时间:2010-05-09 06:35:43

标签: flex rss flex4

在我的Flex 4应用程序中,我访问了一个RSS提要(我使用http://news.ycombinator.com/rss作为假人)。当我从Flash Builder 4运行它时,它运行正常,但是如果我导出项目并上传它,我在尝试加载RSS源时会收到以下错误:

Error #2044: Unhandled securityError:. text=Error #2048: Security sandbox violation: my_website_url cannot load data from http://news.ycombinator.com/rss.

可能导致此错误的原因是什么? RSS不能从任何地方访问吗?谢谢你的阅读。

3 个答案:

答案 0 :(得分:1)

Afaik flash会查找crossdomain.xml(http://news.ycombinator.com/crossdomain.xml)文件,以检测是否允许下载此内容。您找到了可能的解决方案here

答案 1 :(得分:1)

Flash Player位于浏览器内部自己的安全沙箱中。除非获得权限,否则它无法访问服务域之外的网址。

通过使用crossdomain.xml文件给出了该权限。 ycombinator网站上没有跨域文件,您可以在此处看到:http://news.ycombinator.com/crossdomain.xml。因此,除非swf文件也通过ycombinator提供,否则闪存将无法访问该URL。

我不清楚为什么当你在本地测试时它会起作用;你应该有同样的问题。

如果这是您的站点,您可以创建一个跨域文件并将其添加到根目录,您的问题应该消失。更多信息:

http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html

如果您需要替代Feed以进行测试,可以使用The Flex Show的RSS:

http://www.theflexshow.com/blog/rss.cfm?mode=full

(我们的跨域名供您参考)

http://www.theflexshow.com/crossdomain.xml

答案 2 :(得分:0)

  

我不清楚为什么当你在本地测试时它会起作用;你应该有同样的问题。

这是因为当您从Flash Builder运行时,输出文件是本地文件,因此安全域与Web服务器中托管的SWF不同。