同源策略:协议+域名+端口号,三者相同,即为同源策略;即使两个域名指向同一个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通信,后端需要配置请求头来实现。