在实际开发中,先后端分离的项目一般会须要同后台开发人员联调接口,不可避免的会碰到跨域的问题。虽然说跨域问题最后基本都是后台同事解决的,可是有时候为了赶时间,没辙只有本身来,使用node代理解决前端
跨域:协议 域名 端口号 三个只要有一个不同就是跨域,也就是不一样域名之间的访问; 一般解决跨域的方法 前端jsonp请求 或者node代理 后台配置拦截器或者使用 注解@CrossOrigin(我本身写的基本都是用的整个 配置成*放开全部的请求,反正也是写着玩玩的) 前端vue全家桶一条龙服务,后台ssm 首先在vue项目中 在config目录下index.js proxyTable: { '/api': { target: 'http://localhosst:8080/Maybe/', // 接口域名 changeOrigin: true, //是否跨域 // pathRewrite: { // '^/api': '' //须要rewrite的, // } } }, 而后将axios的baseURL 设置为'/api' 而后跨域的问题就解决了
( ps:封装axios的时候 记得必定要携带cookievue
axios.defaults.withCredentials=true //请求携带cookie 否则后端取到的session也是空的 ) 可是这个时候 会出现一个问题 session 丢失的问题,接口是通的,可是后端却取到的session确是空的 解决方法 proxyTable: { '/Maybe': { target: 'http://localhosst:8080/', // 接口域名 changeOrigin: true, //是否跨域 // pathRewrite: { // '^/api': '' //须要rewrite的, // } } }, 注意:代理名要与application context(就是项目名称)相同;跨域changeOrigin: true;RewritePath, 是将对资源的请求重定向到另外一路径,使其不一样于所请求 URL 指示的路径,根据实际状况看要不要加。 其实真正的session路径在/Maybe下,可是上面这个请求虽然被代理到http://localhosst:8080/Maybe, 很明显的请求http://localhosst:8080/api/Maybe 所携带的cookie在/api路径下面, 在/api路径找/Maybe下cookie确定是找不到的啦,因此就出现了虽然能访问到接口,但取到的session确是空的。