[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服务器.
[Unity WWW] 跨域访问解决方法的更多相关文章
- Ajax跨域访问解决办法
方法1. jsonp实现ajax跨域访问示例 jsp代码: <body> <input type="button" onclick="testJsonp ...
- Nginx反向代理、CORS、JSONP等跨域请求解决方法总结
由于 Javascript 同源策略的存在使得一个源中加载来自其它源中资源的行为受到了限制.即会出现跨域请求禁止. 通俗一点说就是如果存在协议.域名.端口或者子域名不同服务端,或一者为IP地址,一者为 ...
- JS跨域(ajax跨域、iframe跨域)解决方法及原理详解(jsonp)
这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被 ...
- jQuery 跨域访问问题解决方法(转)
转自:http://www.jb51.net/article/21213.htm 浏览器端跨域访问一直是个问题, 多数研发人员对待js的态度都是好了伤疤忘了疼,所以病发的时候,时不时地都要疼上一疼.记 ...
- js跨域及解决方法
什么是跨域 JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象.但在安全限制的同时也给注入iframe或是ajax应用上带来了不少麻烦.这里把涉及到跨域的一些问题简单地整理一下: 首 ...
- WebApi Ajax 跨域请求解决方法(CORS实现)
概述 ASP.NET Web API 的好用使用过的都知道,没有复杂的配置文件,一个简单的ApiController加上需要的Action就能工作.但是在使用API的时候总会遇到跨域请求的问题, 特别 ...
- WebApi Ajax 跨域请求解决方法(CORS实现)(作者:jianxuanbing)
概述 ASP.NET Web API 的好用使用过的都知道,没有复杂的配置文件,一个简单的ApiController加上需要的Action就能工作.但是在使用API的时候总会遇到跨域请求的问题,特别各 ...
- 客户端ajax请求为实现Token验证添加headers后导致正常请求变为options跨域请求解决方法
客户端为了实现token认证,通过Jquery的ajaxSetup方法全局配置headers: 全局配置headers后会导致部分不需要token认证的请求变为options请求,导致跨域访问.报错信 ...
- 第114天:Ajax跨域请求解决方法(二)
一.什么是跨域 我们先回顾一下域名地址的组成: http:// www . google : 8080 / script/jquery.js http:// (协议号) www (子 ...
随机推荐
- 重启oracle数据库的一次操作命令和alter日志。
今天重启oracle数据库的命令和alter日志: oracle@NMSSERVER1:~> sqlplus '/as sysdba' SQL*Plus: Release 11.2.0.3.0 ...
- python 函数部分
#初始化 def init(data): data['first']={} data['middle']={} data['last']={} #查看条件 def lookup(data,label, ...
- java类对象
不错的文章 原文地址:(转载)java中的Class类与Class对象作者:albert1017 本文用作笔记之用,引用的网上资料: http://www.blogjava.net/formatmys ...
- CodeForces 429 B B. Working out
Description Summer is coming! It's time for Iahub and Iahubina to work out, as they both want to loo ...
- ubuntu11.10server 安装redis-2.6.7
1.下载安装: 1 2 3 4 5 6 cd /tmp wget http://redis.googlecode.com/files/redis-2.6.7.tar.gz tar -zxf redis ...
- js 判断网页类型
<html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>标题页</title ...
- C++调用java
摘要: 1 java类生成c头文件和库文件 2 对于c/c++程序,启动时先启动jvm,然后获得对应的java类的对象和方法.然后正常使用. 最近正在做一个C/C++调用java的程序,这里说的调用j ...
- 救援行动(save)
救援行动(save) 题目描述 Angel被人抓住关在一个迷宫了!迷宫的长.宽均不超过200,迷宫中有不可以越过的墙以及监狱的看守.Angel的朋友带了一个救援队来到了迷宫中.他们的任务是:接近Ang ...
- DataSet和List<T> 泛型之间互相转换 (转载, 作者写的很好)
/DataSet与泛型集合间的互相转换 //利用反射机制将DataTable的字段与自定义类型的公开属性互相赋值. //注意:从DataSet到IList<T>的转换,自定义类型的公开属性 ...
- (转)多个mapreduce工作相互依赖处理方法完整实例(JobControl)
多个mapreduce工作相互依赖处理方法完整实例(JobControl) 原文地址:http://mntms.iteye.com/blog/2096456?utm_source=tuicool&am ...