前言
我是一个java后端程序员,之前解决跨域都是在后端写一个过滤器,给HttpRequest的header添加都头信息。但是入职公司后线上服务器是通过配置nginx代理来解决跨域的,所以我再写个过滤器是多余。
现在都是前后端分离,为了更好的接口测试,让前端项目在我本地跑起来,研究了下前端角度(nginx和vue-cli)解决跨域的方法。由于不是专业前端,不对的请指正。
业务场景
后端: http://localhost:8080/project/
前端: http://localhost:8088/
受限于浏览器同源策略(跨域问题),无法在前端 http://localhost:8088/ 项目中请求后端http://localhost:8080/project/提供的接口。
两种跨域解决方法
解决原理
- 前端中,将要请求的真实接口 http://localhost:8080/project/ 变成 http://localhost:8080/api/
前端请求变为:
axios.post('/api/user/login', {params : params})