后台跨域造成session失效

本文介绍了在SpringBoot应用中,由于后台启用跨域支持导致Session失效的问题。通过场景还原、问题症结分析,最终发现是Ajax跨域请求使得Session中的数据无法正常读取。解决方案是在Ajax请求中添加xhrFields配置,设置withCredentials为true,从而保持跨域请求时的Session状态。
摘要由CSDN通过智能技术生成

1.场景还原

     最近在笔者在springboot中集成token机制发现了一个隐藏bug:“后台实现跨域,前端运用ajax请求后台接口成功回调;一切看似那么顺利,其实不然,session已经后台失效了,每次请求的sessionId不一致,之前缓存在session中的值取出来都为null,怎么回事?瞬间懵逼”,很多人可能问什么跨域?百度哈,不赘述!

2.寻求症结 

①后台实现跨域

 

@RestController
@CrossOrigin
@RequestMapping("/user")
public class UserController extends BaseController {
    private Logger logger = LoggerFactory.getLogger(getClass());
    @Autowired
    UserService userService;
    @Autowired
    LoginService loginService;

    @GetMapping(value = "/login")
    public Map<String,Object> getLogin(String loginName,String password){
        String zh
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老张家的独苗

可以吃鸡腿????么!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值