三、处理跨域的方法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这个网站为例,看看,就是允许任何域向这个域发起请求