vue axios - SpringBoot 跨域问题 携带cookies 问题解决
前端地址:127.0.0.1:8080
后端地址:127.0.0.1:8081
后端设置解决跨域,spring boot 注解方式
@CrossOrigin(origins = "http://127.0.0.1:8080", allowCredentials = "true")
Springboot 拦截器导致 @CrossOrigin 跨域失效
CROS 复杂请求时会首先发送一个 OPTIONS 请求做嗅探,来测试服务器是否支持本次请求,请求成功后才会发送真实的请求;而 OPTIONS 请求不会携带数据,导致这个请求被拦截了,直接返回了状态码,响应头中没携带解决跨域问题的头部信息,出现了跨域问题。
原文:https://cloud.tencent.com/developer/article/1768352
解决:在拦截器中配置让OPTIONS 请求放行
@Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { //OPTIONS 请求统统放行 if ("OPTIONS".equalsIgnoreCase(request.getMethod())){ return true; } }
axios 携带cookies
// 设置cookies-token this.$cookies.set('token', resp.data.data, 60 * 20, "/", "", true, "None") // 设置axios 携带cookies axios.defaults.withCredentials = true;

许可协议:
CC BY 4.0