在我的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不能从任何地方访问吗?谢谢你的阅读。
答案 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
(我们的跨域名供您参考)
答案 2 :(得分:0)
我不清楚为什么当你在本地测试时它会起作用;你应该有同样的问题。
这是因为当您从Flash Builder运行时,输出文件是本地文件,因此安全域与Web服务器中托管的SWF不同。