如何解决错误#2048违反安全沙箱-无法加载数据
| 当我尝试从flex进行Java调用时,出现以下错误。 [RPC Fault faultString = \“发送失败\” faultCode = \“ Client.Error.MessageSend \” faultDetail =“ \” Channel.Security.Error错误 错误#2048:违反安全沙箱: \'http://sample.com/sample.swf \'不能 从中加载数据 http:// sample:8080 / messagebroker / amf。 网址: \'http:// sample:8080 / messagebroker / amf \'\“] 当我尝试在本地tomcat服务器中运行相同文件时,这工作正常。但是当作为网站托管时,我收到此错误。我也尝试将crossdomain.xml文件放在根目录中。但是错误永远不会消失。跨域文件如下所示。<cross-domain-policy>
<site-control permitted-cross-domain-policies=\"all\" />
<allow-access-from domain=\"*\" to-ports=\"*\"/>
<cross-domain-policy/>
日志说
连接到
\'http:// sample:8080 / messagebroker / amf \'
暂停-不允许
http://sample.com/sample.swf。
有人在托管Flex网站时遇到过类似的问题吗?
解决方法
看看您有一个不同的域http://sample.com/和http:// sample:8080 /。
, 游戏有点晚了,但还有一些其他项目需要检查。
您说过您可以运行tomcat的本地实例。我将假设您以本地主机而不是IP地址(和/或计算机名称)调用此服务。如果您正在运行Flex应用程序,但尚未更改运行配置,则说明您是从运行到本地主机。离开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>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。