处理跨域方法一——代理
- 通过在同域名的web服务器端创建一个代理
北京服务器(域名:www.beijing.com)
上海服务器(域名:www.shanghai.com)比如在北京的web服务器的后台
(www.beijing.com/proxy-shanghaiservice.php)
来调用上海服务器
(www.shanghai.com/service.php)
的服务,然后再把响应结果返回给前端,这样前端调用北京同域名的服务就和调用上海的服务效果相同了。
处理跨域方法二——JSONP
JSONP可用于解决主流浏览器的跨域数据访问的问题。(get)
在www.aaa.com页面中:
<script>
function jsonp(json){
alert("json["name"]");
}
</script>
<script src="http://www.bbb.com/jsonp.js"></script>
在www.bbb.com页面中:
jsonp({'name':'洪七','age':24});
JQuery中
$.ajax({
type:"GET",
url:"",
dataType:"jsonp",
jsonp:"callback",
success:function(data){},
error:function(jqXHR){}
});
处理跨域方法三——XHR2
- HTML5提供的XHLHttpRequest Level2已经实现了跨域访问以及其他的一些新功能
- IE10以下的版本都不支持
- 在服务器端做一些小小的改造即可:
<?php
header('Access-Control-Allow-Origin:*');
header('Access-Control;-Allow-Methods:POST,GET');
>