在解决Vue跨域问题前,首先要了解什么叫跨域?
跨域是指浏览器不允许当前页面的所在的源去请求另一个源的数据。源指协议,端口,域名。只要这个3个中有一个不同就是跨域。 这里列举一个经典的列子:
其实,在项目开发过程中,尤其在一些前后端分离的项目中,那么经常会和跨域打交道。这里主要以Vue框架为例,Vue是一个前端框架,那么对于一些跨域请求后台问题也有自己处理的方法。目前自己开发的是Vue项目,所以就百度查到了proxy代理,网上有很多,但为了方便自己,以防后期忘记,所以还是自己写下来吧;¬¬¬
- 在Vue项目中config/index.js文件下,由于只有开发环境才会遇到跨域问题,所以只需要在dev中添加proxyTable相关设置:
以上是端口号不同引起的跨域问题,只要在proxyTable的target中配置你要跨域问题即可,比如:前端的端口号是8080,后端的端口号是8082,那么就在target中配置http://localhost:8082,由于这个是本地开发的,使用的是localhost,如果是部署在其他服务器中的话,那么就要把localhost改为你服务器的域名。 - 在请求方法的API中,在请求路径前添加’/api’,而这个’/api’要与第一步配置中的’/api’一致,当请求这个地址时,Vue中的proxy代理会把原来的端口替换成要跨域的端口,从而解决跨域问题。例如:前端的请求地址为http://localhost:8080/test,但是要请求后台,而后台的端口号为8082,当提交请求时,proxy代理就会把http://localhost:8080/test改为http://localhost:8082/test
以上是端口号不同引起的跨域问题,当然像协议和域名引起的跨域问题,也可以类似的解决。