在vue-cli3.0+axios+spring boot项目中登录使用了session记录简单信息

发现使用注入 的request对象获取的session一直为新的对象,导致无法获取前面存储在里面的数据

利用getSession(flase)发现无法获取到对象

发现每次ajax请求,还是不同的session,打开chrome的network,发现每次请求的请求头中并没有,和我想象的一样携带cookie信息,查看axios源码发现:

axios 填坑-----后端session一直获取不到或者不为同一个

withCredentials默认是false,意思就是不携带cookie信息

axios 填坑-----后端session一直获取不到或者不为同一个

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

 

 

相关文章: