天天看点

跨域解决办法

什么是跨域:协议、主域名、子域名、端口有一个不相同即跨域。

如:在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: *’);

继续阅读