关于Flex或Flash的跨域访问
解决方案,事情的起因是,由我公开的一个webservices开始的,一个朋友在webservice的基础上制作了一个weather查询的,在本机测试ok,一拿到网上,就会出现error(是跨域访问的错误)
后来,终于找到了Flash跨域访问的问题解决方案,如下:
写一个名字为 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> <allow-access-from domain="www.ad0.cn" /> <allow-access-from domain="ad0.cn" /> <allow-access-from domain="*.netfetch.cn" /> </cross-domain-policy> |
如果使用XMLSocket要把端口号加上
<cross-domain-policy> <allow-access-from domain="*.ad0.cn" to-ports="507,516" /> <allow-access-from domain="*.netfetch.cn" to-ports="516-523" /> <allow-access-from domain="www.ad0.cn" to-ports="507,516-523" /> <allow-access-from domain="202.103.96.68" to-ports="*" /> </cross-domain-policy> |
如果安全策略文件放在根目录,文件名字必须为crossdomain.xml,如果不放在根目录,要用System.security.loadPolicyFile(
http://www.netfetch.cn/crossdomain.xml )这样的方法加载安全策略文件。