开发项目vue2+java!
vue前端已经处理好,
结果,
报错:通过session拿到的数据为空
很多方法,却无能发解决
跨域问题就会导致session不一致,mainSql.java中553行应该是有对象为空,调用属性或是方法时报空指针。
如有帮助,欢迎采纳!
用的什么浏览器测试的,是chrome吗,在新版本的chrome中有一个sameSite的设置,默认是不发送第三方的cookie的
@Configuration
@EnableSpringHttpSession
public class SessionConfig {
@Bean
public SessionRepository sessionRepository() {
return new MapSessionRepository(new ConcurrentHashMap<>());
}
@Bean
DefaultCookieSerializerCustomizer cookieSerializerCustomizer() {
return new DefaultCookieSerializerCustomizer() {
@Override
public void customize(DefaultCookieSerializer cookieSerializer) {
cookieSerializer.setSameSite("None");
// cookieSerializer.set
cookieSerializer.setUseSecureCookie(true); // 此项必须,否则set-cookie会被chrome浏览器阻拦
// cookieSerializer.setUseHttpOnlyCookie(false);
// cookieSerializer.setCookieMaxAge(1440);
// cookieSerializer.setUseBase64Encoding(false);
}
};
}
}
前端使用的nginx么,nginx有配置可以不改变session,那个配置我忘了,你可以网上搜下
你可以改用token的方式,就不会出现这种问题了
可以使用Spring Session进行会话共享:
https://blog.csdn.net/qq_42280739/article/details/85013999