关于Flex安全沙箱问题的解决

来源:互联网 发布:合生元益生菌 知乎 编辑:程序博客网 时间:2024/06/05 23:44

关于Flex安全沙箱问题的解决      前些天做了一个flex的小程序,通过访问服务前端的xml来更新数据,在本地调试调用本地的xml文件是没有问题的,可把url换成服务器端时就出现了Security Error,通过上网查找断定是安全沙箱的问题,下面是在网上找到的解决安全沙箱问题的方法,仅供参考。

方法一:在目标服务器上布署crossdomain.xml文件(我用的此方法很管用,放上就没问题了)需要远程服务根目录定义有crossdomain.xml文件,如下:

<?xml version="1.0" encoding="UTF-8" ?> <cross-domain-policy>     <allow-access-from domain="*"/> </cross-domain-policy>

方法二:使用代理,把Flex要访问的远程文件通过asp, php, jsp等脚本读取到本地,然后再由Flex去访问;

方法三:使用Adobe flash player 9 打开程序后,点击菜单栏中文件->创建播放器...即生成exe文件,运行exe文件即可突破安全限制;

方法四:    1、找到这个文件夹:c:/Documents and Settings/<UserName>/Application         Data/Macromedia/Flash Player/#Security    2、在其下建立一个名为"FlashPlayerTrust"的文件夹    3、在"FlashPlayerTrust"文件夹下新建一TXT文件,内容如下:        c:/        d:/        e:/        f:/    4、将该txt文件命名为:"myTrustFiles.cfg"    再打开你硬盘里的SWF文件,就不会出现那个烦人的安全设置提示窗口了!

方法五: 用HttpService它默认是有Proxy的,需要配置flex-config.xml,里面有一段: <http-service-proxy>      <whitelist>         ………………     </whitelist> </http-service-proxy>

这个是白名单,一般情况下是注释掉的,也就是默认只有本地的http://{localserver}/*和https://{localserver}/*可以访问。其他的需要在flex-config.xml里的自行修改成需要的就可以了。

访问本地自然不会跨域,不过你肯定访问局域网其他机器了,所以是依照白名单规则,属于跨域