用springcloud-gateway做网关,想在后端通过session获取验证码信息,却发现获取不到session,一查才知道session不一致。
在网上找过了相关解决代码,但好像都没有用..
//gatewayapplication下的配置
/**
* 配置跨域
* @return
*/
@Bean
public CorsWebFilter corsFilter() {
CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
config.addAllowedMethod("*");
config.addAllowedOrigin("*");
//尝试修改这个值,但无效。
//config.addAllowedOrigin("http://127.0.0.1:8080");
config.addAllowedHeader("*");
config.setMaxAge(3600L);
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(new PathPatternParser());
source.registerCorsConfiguration("/**", config);
return new CorsWebFilter(source);
}
//vue-main.js下的配置
axios.defaults.withCredentials=true;
我遇到的session不一致问题就是以下两种:
1、vue代理产生的问题
https://blog.csdn.net/qq_30385099/article/details/120132197
2、谷歌浏览器的一个配置项问题
https://blog.csdn.net/weixin_40571937/article/details/108850119
另外最近遇到的一个就是负载均衡导致的session不一致,用的是spring-session实现的session共享解决的