当使用WWW访问Web服务时,安全策略会阻止跨域的请求访问,会返回类似“Rejected because no crossdomain.xml policy file was found”等错误信息。
解决办法:为提供Web服务的目录配置安全策略文件,即crossdomain.xml(还有人提过添加一个Web代理服务的解决办法,但相比较配置安全策略文件这种方法会更简单一些)。
crossdomain.xml文件的写法如下:
复制代码
domain=“*” 表示该服务目录允许任何外域来访问,你也可以把“*”替换成指定的域名,如下:
复制代码
注意: crossdomain.xml必须是一个ASCII文件。
该文件要放置在服务器的根目录下,例如: www.sample.net/crossdomain.xml 或 http://ip:port/crossdomain.xml 。
放到指定Web服务的路径下,如 http://ip:port/crossdomain.xml ,了解FlashPlayer可以通过Security.loadPolicyFile(url)访问这样路径下的安全策略文件,但Unity3d如何访问,还要向试验成功的朋友请教。
另,本地调试程序时解决跨域问题的方法:
Edit->Project Settings->Eidtor
将mydomain更改成目标服务器的域名即可。
解决办法:为提供Web服务的目录配置安全策略文件,即crossdomain.xml(还有人提过添加一个Web代理服务的解决办法,但相比较配置安全策略文件这种方法会更简单一些)。
crossdomain.xml文件的写法如下:
复制代码
1
2
3
4
|
<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="*"/>
</cross-domain-policy>
|
domain=“*” 表示该服务目录允许任何外域来访问,你也可以把“*”替换成指定的域名,如下:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<?xml version=”1.0″?>
<!DOCTYPE cross-domain-policy SYSTEM “http://www.adobe.com/xml/dtds/cross-domain-policy.dtd”>
<cross-domain-policy>
<site-control permitted-cross-domain-policies=”master-only” />
<allow-access-from domain=”s-static.facebook.com” />
<allow-access-from domain=”static.facebook.com” />
<allow-access-from domain=”static.api.ak.facebook.com” />
<allow-access-from domain=”*.static.ak.facebook.com” />
<allow-access-from domain=”s-static.thefacebook.com” />
<allow-access-from domain=”static.thefacebook.com” />
<allow-access-from domain=”static.api.ak.thefacebook.com” />
<allow-access-from domain=”*.static.ak.thefacebook.com” />
<allow-access-from domain=”*.static.ak.fbcdn.com” />
<allow-access-from domain=”external.ak.fbcdn.com” />
<allow-access-from domain=”*.static.ak.fbcdn.net” />
<allow-access-from domain=”external.ak.fbcdn.net” />
<allow-access-from domain=”www.facebook.com” />
<allow-access-from domain=”www.new.facebook.com” />
<allow-access-from domain=”register.facebook.com” />
<allow-access-from domain=”login.facebook.com” />
<allow-access-from domain=”ssl.facebook.com” />
<allow-access-from domain=”secure.facebook.com” />
</cross-domain-policy>
|
注意: crossdomain.xml必须是一个ASCII文件。
该文件要放置在服务器的根目录下,例如: www.sample.net/crossdomain.xml 或 http://ip:port/crossdomain.xml 。
放到指定Web服务的路径下,如 http://ip:port/crossdomain.xml ,了解FlashPlayer可以通过Security.loadPolicyFile(url)访问这样路径下的安全策略文件,但Unity3d如何访问,还要向试验成功的朋友请教。
另,本地调试程序时解决跨域问题的方法:
Edit->Project Settings->Eidtor
![点击查看原图](http://game.ceeger.com/forum/attachment/Mon_1204/2_1122_07e1297742a2da9.jpg)
将mydomain更改成目标服务器的域名即可。