做秒杀项目遇到前后端跨域问题及谷歌浏览器禁用cookie的问题

1.前后端跨域问题

1.1检查在UserController上添加如下注解:

//跨域请求中,不能做到session共享
@CrossOrigin(allowCredentials = "true",allowedHeaders = "*")

1.2检查在getotp.html和register.html中添加跨域请求,注:是两个页面都添加

 

                 //允许跨域请求
                xhrFields:{withCredentials:true},
                crossDomain: true,


2.谷歌浏览器禁用cookie问题

f12以后在谷歌浏览器报以下错误,报验证码不正确

 

 解决:

方法一:换用火狐浏览器访问

方法二:在UserController页面添加下面代码

 在上面注入

    @Autowired
    private HttpServletResponse httpServletResponse;

在getOtp方法中添加下面代码

 

        //设置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());


3.注册不成功的问题

1.检查UserServiceImpl的register方法有没有设置id

2.在UserMapper.xml中的insertSelective 方法上加下面配置

keyProperty="id" useGeneratedKeys="true

 4.启动项目

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值