为了账号安全,请及时绑定邮箱和手机立即绑定

inSessionOtpCode==null

改了@CrossOrigin(allowCredentials = "true",allowedHeaders = "*")和xhrFields:{withCredentials:true},
这两个地方还是null,springboot版本是2.0


正在回答

9 回答

前端代码要加上这俩:

xhrFields: {withCredentials: true},
crossDomain: true,

后端如果启动不了,就这么写

@CrossOrigin(origins = "http://localhost:63342",allowCredentials = "true", allowedHeaders = "*")

我的跨域问题就这么解决的

下载视频          
0 回复 有任何疑惑可以回复我~

前端代码要加上这俩:

xhrFields: {withCredentials: true},

后端如果启动不了,就这么写

@CrossOrigin(origins = "http://localhost:63342",allowCredentials = "true", allowedHeaders = "*")

我的跨域问题就这么解决的

0 回复 有任何疑惑可以回复我~
#1

慕先生5300565

前端还有这个crossDomain: true,
2022-04-18 回复 有任何疑惑可以回复我~

springboot2.6.x版本可以如下设置,在application.properties中设置

server.servlet.session.cookie.same-site=none
server.servlet.session.cookie.secure=true

配置UserController上的@CrossOrigin
@CrossOrigin(originPatterns = "*", allowCredentials = "true")


3 回复 有任何疑惑可以回复我~
#1

weixin_慕斯6578182

为啥2.6.7版本没有上面那个same-site命令了。。。
2022-05-11 回复 有任何疑惑可以回复我~


他妈的搞了好几天终于解决这个问题了,帖子里在response里设置header里set-cookie的不会生效试过了,响应头里会有两个set-cookie不知道为什么,可能是chorme版本问题。视频spring里使用的是2.0.5.RELEASE版本
这个版本找不到sameSite属性,我将springboot升级到然后设置一个config类,在config类中设置如下的配置
@Bean
public CookieSerializer httpSessionIdResolver(){
    DefaultCookieSerializer cookieSerializer = new DefaultCookieSerializer();

    // 源码默认为Lax
    // private String sameSite = "Lax";
    cookieSerializer.setSameSite("None");
    cookieSerializer.setUseSecureCookie(true);
    return cookieSerializer;
}

亲测有用,被这个bug折磨死了!!!!!


1 回复 有任何疑惑可以回复我~
#1

慕函数2418730

springboot版本是2.2.13.RELEASE,同时我是在使用了spring-session-data-redis来存储session。
2022-04-01 回复 有任何疑惑可以回复我~
#2

慕慕7552154 回复 慕函数2418730

你好,请问spring-session-data-redis在pom引入之后还需要做什么操作吗?
2022-07-19 回复 有任何疑惑可以回复我~
responseCookie找不到怎么办,这儿报红
下载视频          
0 回复 有任何疑惑可以回复我~

http://img1.sycdn.imooc.com//613868730001c64913890769.jpg

这个是根据楼上回答写的,主要的原因是springboot里面多加了samesite这个设置,需要降低其等级。具体原理,可以自己百度一下这个参数。

7 回复 有任何疑惑可以回复我~
#1

qq_慕虎9388703

springboot版本是2.0.5中没有samesite这个方法需要改springboot版本。
2021-11-09 回复 有任何疑惑可以回复我~
#2

慕粉0917511942 回复 qq_慕虎9388703

需要升级到什么版本的springboot才可以呢?
2021-12-18 回复 有任何疑惑可以回复我~
#3

CarsonLi

两次sessionId不一致怎么办
2022-01-27 回复 有任何疑惑可以回复我~
#4

weixin_慕后端1126416 回复 qq_慕虎9388703

改springboot版本为多少可以?
2022-02-20 回复 有任何疑惑可以回复我~
查看1条回复

在类中加入

@Autowired
private HttpServletResponse httpServletResponse;

之后,在接口中设置samesite=None, httponly,secure等属性

ResponseCookie cookie = ResponseCookie.from("JSESSIONID", httpServletRequest.getSession().getId() ) // key & value
        .httpOnly(true)       // 禁止js读取
        .secure(true)     // 在http下也传输
        .domain("localhost")// 域名
        .path("/")       // path
        .maxAge(3600)  // 1个小时候过期
        .sameSite("None")  // 大多数情况也是不发送第三方 Cookie,但是导航到目标网址的 Get 请求除外
        .build()
        ;
httpServletResponse.setHeader(HttpHeaders.SET_COOKIE, cookie.toString());


7 回复 有任何疑惑可以回复我~
#1

慕尼黑7432152

这个可以解决!!谢谢!
2021-09-26 回复 有任何疑惑可以回复我~
#2

weixin_慕粉8033455 回复 慕尼黑7432152

代码里怎么改呢?加了 还是没反应
2022-01-30 回复 有任何疑惑可以回复我~

我也有这个问题,不知道怎么解决,求教

0 回复 有任何疑惑可以回复我~
@CrossOrigin(origins = {"*"}, allowCredentials = "true")

试试这个,我用这个可以

1 回复 有任何疑惑可以回复我~
#1

慕粉0834181895

我试了这个也不行,我的springboot是2.4.3也有同样的问题
2021-08-16 回复 有任何疑惑可以回复我~
#2

快起来挨打 回复 慕粉0834181895

可以在login和getotp里面使用成员的HttpServletRequest,不要使用全局的HttpServletRequest,我这样子能成功
2021-09-10 回复 有任何疑惑可以回复我~
#3

慕少2256381 回复 快起来挨打

啥意思啊?
2022-03-05 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

inSessionOtpCode==null

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信