2010-07-31 112 views
0

我试图在Web服务器(tomcat 6)上部署我的其他工作的Flex应用程序。它抛出了一个Channel.Security.Error。经过一番研究后,我意识到从flash_movie_domain加载的Flash影片将无法从其他域加载资源。一些人建议添加一个crossdomain.xml。但是,crossdomain.xml路由不太合理。Flash Channel.Security.Error无法访问远程资源

在这种情况下,我从第三方网站加载资源。我的理解是,我需要这个第三方网站在其根目录中包含一个crossdomain.xml以使应用程序正常运行。第三方Web服务按原样提供。我将无法改变给出的内容。由于第三方提供公共访问,它已经明确地向公众提供许可。将crossdomain.xml添加到其根目录似乎是一种冗余行为?

在一天结束时,我需要找出一种方法来从我的域中加载的Flash电影访问第三方Web服务。谢谢。

回答

0

这听起来像你已经有你的答案。

此第三方网站将需要添加一个crossdomain.xml文件,该文件将允许Flash Player从此第三方域访问数据。

我不清楚这个第三方网站是如何为您提供访问其数据的权限的。但是,Flash Player放置在浏览器的沙盒中。为了访问远程域,crossdomain.xml文件允许Flash Player移出它的沙箱。

说一些事情可以做,没有什么多余的;并提供技术工具来帮助实现目标。

您的替代方案是不从Flash访问网站。您可能可以使用中介代理来检索数据并将其发送回flex。但是,这取决于数据的类型。

+0

第三方Web服务向公众开放。我可以在Local-Trusted沙箱中运行我的Flash应用程序。从这个意义上说,第三方网络服务的所有者已经隐含地允许公众服务。通过将我的Flash应用程序移动到远程沙箱中,Flash Player本身限制了应用程序的访问,而不是该资源的原始提供程序。基本上,Flash Player要求所有公共网站声明它们允许通过crossdomain.xml进行某些访问。 – 2010-07-31 18:56:22

+0

您说过:“基本上,Flash Player要求所有公共网站声明它们允许通过crossdomain.xml进行某些访问”这是正确的!我相信这种方法旨在帮助防止跨站点脚本攻击;但这不是我的专长。 – JeffryHouser 2010-07-31 20:56:19