flash 跨站请求

flash发展到现在很强大, 就跟js一样, 没有js,flash , 就像从彩色电视时代回到了黑白电视一样。 js可以访问网络数据, 当然flash也可以直接访问网络数据, 他们一样都有跨站请求的限制。

当然在flash要访问网络数据,首先接入的时候要把allowNetworking设成all, 或者internal

来看下面这个图

siteA.com 上有个flash  swfA.swf 要访问 siteB.com 上swfB.swf 的数据, 只有swfB用 Security.allowDomain(‘siteA.com’) 授权给了siteA.com 了,siteA.com 才能取到他的数据。

查了一下cs3 手册, flash 安全授权有几种方式, 都在Security 命名空间下面。

allowDomain(… domains):void
[static] This method applies to cross-scripting of ActionScript 3.0 code (in SWF content).

loadPolicyFile(url:String):void
[static] Loads a cross-domain policy file from a location specified by the url parameter.
Security

有时我们访问一个网站的时候, 抓包会看到有一个crossdomain.xml 的文件, 就是用loadPolicyFile 加载的授权文件, 当然也可以直接在flash 里写上allowDomain 的方式授权, 这样抓包的时候就看不到类似crossdomain.xml 的文件了。

评论