三、处理跨域的方法1 -- 代理
这种方式是通过后台(ASP、PHP、JAVA、ASP.NET)获取其他域名下的内容,然后再把获得内容返回到前端,这样因为在同一个域名下,所以就不会出现跨域的问题。
比如在北京(
www.beijing.com/sever.php
)和上海(
www.shanghai.com/sever.php
)各有一个服务器,北京的后端(
www.beijing.com/sever.php
)直接访问上海的服务,然后把获取的响应值返回给前端。也就是北京的服务在后台做了一个代理,前端只需要访问北京的服务器也就相当与访问了上海的服务器。这种代理属于后台的技术,所以不展开叙述。
处理跨域的方法2 -- JSONP
jsonp本质上就是一个script的标签
假设在
网页链接
这个页面中向
网页链接
提交GET请求,那么我们在
www.jxdxsw.com
页面中添加如下代码:
1
这里的
url
必须在同域,如果主域同,子域不同是绝对不能跨域的
现在升级成xhr2后
“XHR2” 全称 “XMLHttpRequest Level2” 是HTML5提供的方法,对跨域访问提供了很好的支持,并且还有一些新的功能。
* IE10一下的版本都不支持
* 只需要在服务器端头部加上下面两句代码:
header( "Access-Control-Allow-Origin:*" );
打成*是所有域,如果限定特定的域,我们希望百度和镜心的服务器能跨域请求我们的接口
header( 'Access-Control-Allow-Origin:www.baidu.com');
我们以MDN这个网站为例,看看,就是允许任何域向这个域发起请求