安全沙箱的无奈解决办法。
在编写FLEX程序时,老是遇到安全沙箱错误,经过多次失败、GOOGLE搜索,得出如下结论:
1.对于ADOBE搞出的安全沙箱的必要性,网上N多人转贴,内容雷同,讲得头头是道,但作为一个开发人员,觉得完全是鸡肋。
安全沙箱我碰到两种情况,一种是弹出一个对话框,里面写着“安全沙箱。。。。不能从加载数据”。还有一种是以httpservice方式向某服务器请求数据时,直接调用失败事件方法,而在FB3中却可以正常运行。
2.如果被请求的服务器如http://111.111.111.111所在的服务器是你可更改的,那么恭喜你,在服务器相应的根目录(TOMCAT在“Tomcat 6.0\webapps\ROOT”)中放一个名为crossdomain.xml的配置文件,至于为什么要放这个文件,网上也是N多贴子,反正我是不关心为什么,如果你关心,自己搜了看看,文件内容如下:
<?xml version="1.0"?>
?<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy> <site-control permitted-cross-domain-policies="all"/> <allow-access-from domain="*"/>
</cross-domain-policy>
基本可以解决问题,为啥是基本呢,因为不排除你放错地方,哈哈。
2.如果被请求的服务器是别人的,也就是你没有更改的权利,没办法放上一个文件,那就同病相怜了,因为我现在也碰到了这个问题,在一个应用中要取GOOGLE服务器的数据,所有的代码写完后在FB3中调试一切正常,当把SWF放到网页中,就一直调用获取失败的那个方法,在网上搜了N多贴子,什么花招都有
????? 1.在网页放SWF的地方加:<param name="allowScriptAccess" value="always" />,然后在AS代码中再加一行代码(忘了那行代码了),试过了,也许是我太笨,无法理解作者的精髓,结果是对于我这种情况,不好使。
????? 2.修改那个CFG文件,我试过了,似乎对本地目录好使,对于这种HTTP的不管用。
还有一种办法,也是经历了无数次失败后,我选择的无奈方法,就是用自已的服务器去请求数据,以我的这个就用为例:原来的流程是SWF直接向GOOGLE请求数据,解析返回的数据。现在改为SWF向我的TOMCAT服务请求数据,由servlet去请求,然后再转给SWF.....
?
本人才疏学浅,学FLEX也不久,以上仅是个人之所见,如果您有好办法解决我碰到的这个问题,望赐教,staticemail@163.com,QQ:20161552
?
?
?
1 楼 未来IT 2012-10-15 请问博主 问题解决否 小弟也遇到相似问题 求赐教