springboot与vue框架axios请求后台无法识别sessionid的解决方法

问题描述

有一个用户注册的接口,前端触发发送手机验证码后,需要进行验证码验证,在发送验证码时使用的是session机制来保存的,然后验证验证码的时候从session中取得验证码。
在postman中是能够正常访问验证的,但是在vue框架axios请求时却没有正常验证。

后端请求api是跨域访问的。

解决办法

服务端设置

1
2
3
4
5
6
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.addAllowedOrigin("*");
corsConfiguration.addAllowedHeader("*");
corsConfiguration.addAllowedMethod("*");
//增加了AllowCredentials=true设置可以接收cookie信息
corsConfiguration.setAllowCredentials(true);

请求端axios设置

1
2
3
import axios from 'axios'
//withCredentials=true设置可以发送cookie信息
axios.defaults.withCredentials=true;

经过设置后可以正常请求验证了。