今天一個客戶的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文件存放位置,建議將其存放于站點根目錄中