错误#2048:安全性 砂箱 </跨度> 违反: ’http://sample.com/sample.swf'不能 加载 数据 </跨度> 从 HTTP://样品:8080 / messagebroker / AMF。 网址: 的 ‘http://样品:8080 / messagebroker / AMF’“]
当我试着
看看你有不同的域名 HTTP://样品 的 .COM 强> /和 HTTP://样品:8080 / 。
游戏有点晚,但还有其他一些要检查的项目。
你声明你可以运行tomcat的本地实例。我将假设您将此服务作为localhost而不是IP地址(和/或计算机名称)调用。如果您正在运行Flex应用程序并且尚未更改运行配置,那么您将从localhost运行。离开locahost域后,请确保进入运行配置(运行或调试按钮旁边的小向下箭头),然后使用您的IP地址输入运行应用程序的本地路径。现在,您将运行应用程序的IP地址到IP地址(或任何不是localhost)的服务。这通常可以解决问题。
接下来,确保您的crossdomain.xml文件位于服务器的ROOT。你应该能够浏览到 HTTP://yourhostname/crossdomain.xml 。不应该涉及任何路径。 crossdomain.xml应该是托管服务的根级别。
可能还需要将Flex的本地工作空间实例设置为Web服务器(IIS,tomcat)下的虚拟目录。在我的情况下,我可以浏览到127.0.0.1/workspace/someflexapp/bin-debug/projectname.html并运行flex应用程序。
经过这么多次,按照上述步骤一直解决问题。
您可以使用如下所示的crossdomain.xml文件来开放访问flex将从Web / soap服务请求的大多数内容。
<cross-domain-policy> <site-control permitted-cross-domain-policies="all"/> <allow-access-from domain="*" to-ports="*"/> <allow-http-request-headers-from domain="*" headers="*"/> <allow-http-request-headers-from domain="*"/> </cross-domain-policy>