Flex flash_player 沙箱安全解决办法
做一个Flex新闻系统,新闻图片放置在另一个网站(favzone)的目录下,平时在开发的时候调试项目的时候,直接Run Application时,ie浏览器地址是(D:\FlexProject\favzone\bin-debug\fazone.html) ,这时候flash的沙箱安全级边为:
localTrusted (Security.LOCAL_TRUSTED):此文件是本地文件,并且用户已经使用 Flash Player“设置管理器”或 FlashPlayerTrust 配置文件将其设置为受信任的文件。此文件既可以从本地数据源读取数据,也可以与 Internet 进行通信。
这时你可以很方便去读任何internet网站上的资料而不会报安全错误。而当你把flex项目布署到服务器上用ebibi.com访问的时候,你再去读ebibi.com上面的图片的时候就会报如下错误.
SecurityError: Error #2122: 安全沙箱冲突:BitmapData.draw:http://localhost/ebibi/views/favzone.swf 不能访问 http://ebibi.com/attachments/month_0907/p200977225423.jpg?id=31。需要一个策略文件,但在加载此媒体时未设置 checkPolicyFile 标志。
由于图片列表是由后台db出来的,不能用load方案,或先把图片读过来再转给flash,因为是自己图片服务器可以放crossdomain.xml,具体做法如下:
1.将以下内容拷贝到crossdomain.xml
- <?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="*" />
- <allow-http-request-headers-from domain="*" headers="*"/>
- </cross-domain-policy>
2.将crossdomain.xml放置到图片所在网站的根目录下.
3.在flex程序启动时调用
private function init():void{
flash.system.Security.loadPolicyFile("http://ebibi.com/crossdomain.xml");
}
所属分类:技术经验分享
本文标签:flex Flash Player 沙箱安全




