zoukankan      html  css  js  c++  java
  • [Unity WWW] 跨域访问解决方法

    什么是跨域访问

    域(Domain)是Windows网络中独立运行的单位,域之间相互访问则需要建立信任关系(即Trust Relation)。信任关系是连接在域与域之间的桥梁。当一个域与其他域建立了信任关系后,2个域之间不但可以按需要相互进行管理,还可以跨网分配文件和打印机等设备资源,使不同的域之间实现网络资源的共享与管理。

    有一种简明的说法来解释广域跨域:跨域访问,简单来说就是 A 网站的 javascript 代码试图访问 B 网站,包括提交内容和获取内容。由于安全原因,跨域访问是被各大浏览器所默认禁止的。

    Unity发布的Web程序出现的跨域访问问题

    当使用WWW访问Web服务时,安全策略会阻止跨域的请求访问,会返回类似“Rejected because no crossdomain.xml policy file was found”等错误信息。

    Unity发布的Web程序需要跨域访问时的解决办法

    为提供Web服务的目录配置安全策略文件,即crossdomain.xml(还有人提过添加一个Web代理服务的解决办法,但相比较配置安全策略文件这种方法会更简单一些)。 

    文件内容如下:

    <?xml version="1.0"?>
    <cross-domain-policy>
    <allow-access-from domain="*"/>
    </cross-domain-policy>
    

    其中,在xml文档中domain=“*” 表示该服务目录允许任何外域来访问,你也可以把“*”替换成指定的域名,如下: 

    <?xml version=”1.0″?> 
    <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文件。

    另外需要注意的是,需要将crossdomain.xml文件放在服务器的一个的根目录下

    例如:

    • http://www.sample.net/crossdomain.xml
    • http://127.0.0.1:9097/crossdomain.xml

    在本地进行程序调试时,需要在Unity开发工具的菜单栏中打开Editor Setting.

    Edit->Project Setting->Editor

    需要将HostURL这个属性的值,修改成对应的URL服务器.

     

  • 相关阅读:
    猜数字游戏(补)
    团队项目五(项目回顾)
    项目回顾
    第二次阶段冲刺
    团队项目(任务三):第一次冲刺
    个人项目(一):新猜数字
    课后作业(一)
    团队任务二
    团队任务(一)
    课后作业(一)
  • 原文地址:https://www.cnblogs.com/daxiaxiaohao/p/4162648.html
Copyright © 2011-2022 走看看