在vue-cli3.0+axios+spring boot项目中登录使用了session记录简单信息
发现使用注入 的request对象获取的session一直为新的对象,导致无法获取前面存储在里面的数据
利用getSession(flase)发现无法获取到对象
发现每次ajax请求,还是不同的session,打开chrome的network,发现每次请求的请求头中并没有,和我想象的一样携带cookie信息,查看axios源码发现:
withCredentials默认是false,意思就是不携带cookie信息
axios.defaults.withCredentials=true;
后端跨域配置:
@Configuration
public class CorsConfig {
@Bean
public CorsFilter corsFilter() {
final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
final CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.addAllowedHeader("*");
corsConfiguration.addAllowedOrigin("*");
corsConfiguration.addAllowedMethod("*");
//关键配置
corsConfiguration.setAllowCredentials(true);
source.registerCorsConfiguration("/**", corsConfiguration);
return new CorsFilter(source);
}
}
标红为关键配置
这样就能获取到正常的session