crossdomain.xml 对于 flash跨域调用文件的使用

来源:互联网 发布:贪心算法的设计思想 编辑:程序博客网 时间:2024/06/08 16:45

前提:公司内部图片管理系统采用了网站系统和图片分开管理,而图片管理系统中采用了 Simpleviewer flash插件进行图片浏览。

之前一个系统上图片幻灯浏览是没问题的,但是分开2服务器后就不行了。
一开始以为只是地址调用错误,发现地址调整后还是存在这个问题。
通过开发人员工具发现,在载入幻灯页的时候,会出现一个crossdomain.xml 加载失败的报错。

网上查了下,原来当flash进行跨域文件读取的时候。需要crossdomain.xml 的支持,该文件限制了flash是否可以跨域读写数据以及允许从什么地方跨域读写数据。

<cross-domain-policy>    <site-control permitted-cross-domain-policies="master-only" />    <allow-access-from domain="192.168.1.222" secure="true" /></cross-domain-policy>

第一句:只允许使用主策略文件(根目录下的策略文件)
第二句:只允许ip 192.168.1.222 传输https加密内容

当domain被指定为IP地址时,只接受使用该IP作为网址来访问的来源请求[此时ip地址也就相当于一个域名而已],如domain被设置为192.168.1.100时,使用http://192.168.1.100/flash.swf 来请求该域内容是允许的,但是使用指向192.168.1.100的域名www.a.com来访问时[http://www.a.com/flash.swf]将会被拒绝,因为flash不懂得dns解析:)

其实这个策略文件还有2个节点属性可以配置(但是这里暂时没有用到)

allow-access-from-identity:该节点配置跨域访问策略为允许有特定证书的来源跨域访问本域上的资源。每个allow-access-from-identity节点最多只能包含一个signatory子节点。形如:

<allow-access-from-identity>   <signatory>     <certificate fingerprint="01:23:45:67:89:ab:cd:ef:01:23:45:67:89:ab:cd:ef:01:23:45:67" fingerprint-algorithm="sha-1"/>   </signatory></allow-access-from-identity>

allow-http-request-headers-from:此节点授权第三方域flash向本域发送用户定义的http头。

<cross-domain-policy>     <allow-http-request-headers-from domain="*" headers="SOAPAction" /></cross-domain-policy>
0 0
原创粉丝点击