问题描述
前后端完全分离的项目,前端使用Vue + axios,后端使用SpringBoot。
使用CORS协议解决跨域访问数据限制的问题,但是发现客户端的Axios请求不会自动带上服务器返回的Cookie:JSESSIONID。
导致每一个Axios请求在服务端看来都是一个新的请求,都会在服务端创建新的Session(在响应消息头中设置Set-Cookie:JSESSIONID=xxx)。
分析原因
实际上,这是浏览器的同源策略导致的问题:不允许JS访问跨域的Cookie。
解决方案
需要从两方面进行解决问题
- 在配置中允许跨域请求Cookie
package com.xyl.Common;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;