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服务器.

     

  • 相关阅读:
    jQuery EasyUI API 中文文档 可调整尺寸
    jQuery EasyUI API 中文文档 链接按钮(LinkButton)
    jQuery EasyUI API 中文文档 手风琴(Accordion)
    jQuery EasyUI API 中文文档 表单(Form)
    jQuery EasyUI API 中文文档 组合(Combo)
    jQuery EasyUI API 中文文档 布局(Layout)
    jQuery EasyUI API 中文文档 拆分按钮(SplitButton)
    jQuery EasyUI API 中文文档 菜单按钮(MenuButton)
    jQuery EasyUI API 中文文档 搜索框
    jQuery EasyUI API 中文文档 验证框(ValidateBox)
  • 原文地址:https://www.cnblogs.com/daxiaxiaohao/p/4162648.html
Copyright © 2011-2022 走看看