今天为了测试一个Flash程序在跨域环境下的运行,嫌配置apache虚拟目录麻烦,就直接拖放到HFS里面建立虚拟目录来跑,这一跑就害我折腾老半天。

在httpWatch中能清楚看到已经拉取了crossdomain.xml,而且也看到crossdomain.xml的内容已经授权SWF所在域,我也试着改为<allow-access-from domain=”*” />,Flash任然报没有信任的错误。接着是一番折腾。。

服了,还是改用Apache,再次测试,这次就没有任何跨域的错误了。

很奇怪了,同样的web目录,在不同服务器有不同的结果。

检查下来,该死,HFS将xml文件设置的Content-Type为了application/octet-stream,造就了今天的折腾。

最后得出结论,FlashPlayer读取crossdomain.xml按HTTP头中的Content-Type来判断了,以前好像是只管文件内容的。就算拉取crossdomain.jpg为名的策略文件也可以。不知道什么时候改了。

这里又是FlashPlayer 安全更新的一个细节。记录下来!