今天一个客户的flash程序突然无法访问到数据,经过检查发现当时做flash时,对访问的数据使用了域名方式访问,但是现在客户又绑定了另一个域名,所以另一个域名访问时就造成了跨域访问,由于flash采用完全域匹配规则,所以无法访问另一个域的数据。
解决方法:
flash访问另一个域的数据,flash player 会自动从改域加载策略文件(crossdomain.xml),如果访问的数据所在的域在策略文件中,则数据将可访问。
下面的策略文件表示允许abcd.com上的flash访问来自www.abc.com,abcd.com和www.cba.com文档数据
<?xml version="1.0"?> <!--http://abcd.com/crossdomain.xml--> <cross-domain-policy> <allow-access-from domain="www.abc.com" /> <allow-access-from domain="*.abcd.com" /> <allow-access-from domain="www.cba.com" /> </cross-domain-policy>
也可以使用通配符允许访问所有域文档
<?xml version="1.0"?> <!--http://abcd.com/crossdomain.xml--> <cross-domain-policy> <allow-access-from domain="*" /> </cross-domain-policy>
对于crossdomain.xml文件存放位置,建议将其存放于站点根目录中