Flex或Flash的跨域访问的解决方案


关于Flex或Flash 的跨域访问的解决方案,事情的起因是,由我公 开的一个webservice(不清楚这个webservice干什么的请看这里)开始 的,kenshin的朋友sensun在这个公开的webservice的基础上制作了一个weather查询的,在本机测试ok,一拿到网上,就会出现 error(是跨域访问的错误),后来,kenshin终于找到了这个问题的解决方案,如下:


写一个名字为 crossdomain.xml 的XML文件,这个方法是允许任何 Flash都可以 调用,放到被调用文件的网站根目录下:



<?xml version="1.0"?>

<!DOCTYPE cross-domain-policy

SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">

<cross-domain-policy>

<allow-access-from domain="*" />

</cross-domain-policy>


只让你允许的网站来调用你的数据~.


<?xml version="1.0"?> 

<!DOCTYPE cross-domain-policy

SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">

<cross-domain-policy> 仓qWC腋 闬 

<allow-access-from domain="www.yoursite.com" />

<allow-access-from domain="yoursite.com" />

<allow-access-from domain="*.k-zone.cn" />

</cross-domain-policy>




如 果使用XMLSocket要把端口号加上



<cross-domain-policy>

<allow-access-from domain="*.foo.com" to-ports="507,516" />

<allow-access-from domain="*.bar.com" to-ports="516-523" />

<allow-access-from domain="www.foo.com" to-ports="507,516-523" />

<allow-access-from domain="202.117.80.2" to-ports="*" />

</cross-domain-policy>



如 果安全策略文件放在根目录,文件名字必须为crossdomain.xml,如果不放在根目录,要用 System.security.loadPolicyFile(http://webservice.k-zone.cn/crossdomain.xml   )这样的方法加载安全策略文件。

posted on 2010-05-11 15:26  念时  阅读(434)  评论(0编辑  收藏  举报

细节决定成败!态度决定一切!