在实际开发中,前后端分离的项目通常需要和后端开发者共同调试接口,跨域问题会难免会遇到。虽然最后跨域问题基本都是后台同事解决的,但是有时候为了赶时间,只好自己动手,使用node代理解决跨域:只要其中之一三种协议域名端口号不同,就是跨域,即不同域名之间的访问;通常解决跨域的方法前端jsonp请求或者节点代理后台配置拦截器或者使用注解@CrossOrigin(我基本上是用整个配置来*释放所有请求,反正也是写出来玩玩的)前端vue全家桶一站式服务,后台ssm先在vue项目config目录下index.jsproxyTable:{'/api':{target:'http://localhosst:8080/Maybe/',//接口域namechangeOrigin:true,//是否跨域//pathRewrite:{//'^/api':''//需要重写,//}}},然后设置axios的baseURL为'/api'和那么跨域问题就解决了(ps:封装axios的时候记得带cookieaxios.defaults.withCredentials=true//请求携带cookie,但是最后取回的session也是空的)但是这次它会出现一个问题就是会话丢失的问题。接口连接上了,但是后台获取到的session确实是空的。解决方法proxyTable:{'/Maybe':{target:'http://localhosst:8080/',//接口域名changeOrigin:true,//是否跨域//pathRewrite:{//'^/api':''//需要重写,//}}},注意:代理名称必须与应用上下文(即项目名称)相同;跨域changeOrigin:true;RewritePath是将对资源的请求重定向到另一个路径,使其与请求的URL所指示的路径不同,根据实际情况而定。其实真正的session路径是在/Maybe下,但是上面的请求虽然代理到了http://localhosst:8080/Maybe,但是很明显http://localhosst:8080/api/Maybe携带的cookie是在/api路径下,可能在/api路径下找不到/下的cookie,所以看起来虽然可以访问接口,但是抓取的session确实是空的。
