什么是跨域:协议、主域名、子域名、端口有一个不相同即跨域。
如:在www.test.com 请求 www.abc.com下的接口 (主域名不同)
在www.test.com 请求 m.test.com下的接口 (主域名不同)
在www.test.com 请求 www.test.com:81下的接口 (端口不同)
在www.test.com 请求 https://test.com下的接口 (协议不同)
解决跨域的方法:
1、使用代理的方式
比如在 www.test.com 下需要请求 www.abc.com的接口 可以在后台写一个接口调用www.abc.com的接口。然后发起ajax请求的时候请求本域下的接口。
2、使用jsonp (这种方法只对get请求起作用)
$.ajax({
url:'',
data:{
},
type:'get',
dataType:'jsonp',
jsonp:'callback',// jsonp的值可以是任意字符串
success:function (res) {
},
error:function () {
}
})
3、XHR2 (IE10以下不支持)
修改后台代码,以PHP为例。
header(‘Access-Control-Allow-Origin: *’);