跨域解决方法

107 阅读1分钟

同源策略:协议+域名+端口号,三者相同,即为同源策略;即使两个域名指向同一个ip,也是非同源策略。

受同源策略影响的内容有:ajax、cookie、localStorage等等;

但是有三个标签不受同源策略的影响,允许跨域加载资源:

<img src="" />
<link href="" />
<script src=""></script>

跨域解决方法:

JSONP

原理:利用script标签的src属性,可以实现跨域加载资源,JSONP请求需要对方服务器支持才可以。

优缺点:兼容性好,可以解决主流浏览器的跨域访问问题;但是JSONP只支持get请求方法。

实现流程

1、声明一个回调函数,将函数名作为参数传递,函数的形参为服务器返回的数据;

2、创建script标签,将请求的地址,加问号拼接函数名参数,通过src属性发送请求;

3、服务器接收请求后,对数据进行处理;

4、将数据返回给客户端,通过之前的回调函数对返回的数据做处理。

CORS

cors需要浏览器和后端同时支持,浏览器会自动进行cors通信,后端需要配置请求头来实现。