flex的安全沙箱冲突问题
securityErrorHandler信息: [SecurityErrorEvent type="securityError" bubbles=false cancelable=false eventPhase=2 text="Error #2048: 安全沙箱冲突:http://localhost:8080/BrainpowerBlazeds/bin/BrainpowerBlazeds.swf 不能从 10.20.192.149:8001 加载数据。"]
以上是我的程序一直报的错,调了断断续续有1个星期了,怎么都调不出结果。
一、首先说明一下我的项目:
1、我的flex项目是一个WEB项目;
2、使用了pureMVC框架;
3、使用了BlazeDS;
4、(重点)在一个页面(AA.mxml)中,点击一个button,则连接Java端的Server(端口是8001):socket.connect("10.21.132.142",8001)。>>>>>>>>>>>>>>>>>>>>>>如果连接成功,则发送一个字符串"doOpen".
二、问题是:连接上了Java端的Server,flex客户端这边马上就报了以上SecurityErrorEvent的错。
三、我试过的解决方案:
1、当Java端accept()后,建立一个线程,读取flex端的发送内容,如果发送的内容是“<policy-file-request/>”则将安全策略文件【内容是String xml = "<cross-domain-policy> " + "<allow-access-from domain=\"*\" to-ports=\"1025-9999\"/>" + "</cross-domain-policy> " + "\0";】发回flex客户端。(结果还是报安全沙箱冲突的错)
2、flex端在连接(即socket.connect())之前加载一个放在服务器根目录(D:\apache-tomcat-5.5.17\webapps\ROOT)下的crossdomain.xml文件,以下是该文件的内容:
<cross-domain-policy>
<allow-access-from domain="*" to-ports="1025-9999"/>
</cross-domain-policy>
结果还是报错。
哪位高手能帮我解决一下这个问题,小妹我真是感激不尽,希望大家帮帮忙啊。