同源策略
同源策略,是由 Netscape 提出的一个安全策略,它是浏览器最核心也是最基本的安全功能,如果缺少同源策略,则浏览器的正常功能可能都会受到影响,现在所有支持JavaScript的浏览器都会使用这个策略。
规定:浏览器要求,在解析Ajax请求时,要求浏览器的路径与Ajax的请求的路径必须满足协议、域名(主机host)、端口号都相同,则是同源策略,可以访问服务器,只要有一个不相同,那么都是非同源
vue.config.js
请求接口的时候出现Access-Control-Allow-Origin等就说明了请求跨域。
vue中解决跨域:配置vue.config.js文件,如果没有就自行新建一个
原理:
1、将域名发送给本地服务器(localhost:8080)
2、再由本地的服务器去请求真正的服务器
3、因为请求是从服务端发出的,所以就不存在跨域问题了
注意:修改vue.config.js文件需要重启服务
JSONP
是 JSON with padding(填充式 JSON 或参数式 JSON)的简写。
JSONP实现跨域请求的原理简单的说,就是动态创建<script>
标签,然后利用<script>
的src 不受同源策略约束来跨域获取数据。本质上来说也是一个get请求
在客户端创建一个用于回调的函数(比如:getData()),然后在远程服务器上调用这个函数并且将json格式的数据作为参数,完成回调,从而实现了前后端跨域交互数据。
CORS
CORS 是跨域资源分享(Cross-Origin Resource Sharing)的缩写
浏览器将CORS请求分成两类:简单请求
(simple request)和非简单请求
(not-so-simple request)。
解决跨域问题,就是在服务器端给响应添加头信息 Access-Control-Allow-Origin
JSONP、CORS需要后台的配合和参与.