遇到的问题
下载flexpaper源码修改后做成swf阅读器,要加入待阅读的swf文件,可以在flex里调用js的方法来获取swf文件的路径的方法,在js只专注获取路径就行,等着flex来调用:但这里会遇到一个问题那就是出现安全问题,如下的提示: Error #2044: 未处理的 onDocumentLoadedError:。 text=Error #2048: 安全沙箱冲突:http://localhost:8080/UpLoadAndDownLoad/FlexPaper.swf 不能从 http://127.0.0.1:8080/MyFileConvert/ConvertFile/application1/2.swf 加载数据。这个是由flash的跨域传输数据的安全问题所引起的,当我在tomcat的webapps/ROOT目录里加入如下文件时就可以解决这个安全问题所引去的swf的文件的不能用的问题,不过这里是将swf文件公开给所有的IP访问,所以有安全问题:
<?xml version="1.0" encoding="UTF-8"?> <cross-domain-policy> <allow-access-from domain="*"/>
<allow-access-from domain="127.0.0.1"/>
<allow-access-from domain="*.javaweb.top"/>
<allow-access-from domain="localhost"/>
</cross-domain-policy>
就这几种配置
关于crossdomain.xml的放置目录问题,有如下解决方案,可放置在:
1) 如果这个目录是容器的根目录,可以通过以下的url访问crossdomain.xml:
http://localhost:8080/crossdomain.xml 。
2) 如果crossdomain.xml不是放在根目录下,而是在某个webapp下面,在flex中就需要在初始化的时候应用
Security.loadPolicyFile(“http:// localhost:8080/aaa /crossdomain.xml”);
其中aaa为webapp的名称
这样,外部Flex访问该服务发布的WebService时,flashplayer首先找的就是crossdomain.xml文件,若安全机