关于异步请求springmvc不同controller时取不到session的问题

很多小菜鸟们在使用比如vue的axios对后端进行异步请求时候,比如做到关于注册的验证码的业务时候,明明在后端存进了session时候,但是第二次请求另一个接口的时候session取不到了(null),那是因为前端在请求的时候没有带上cookie,对于后端来说就产生了两个不同的session
那这种情况怎么解决呢?
拿微信小程序举例来说
1、首先我们可以全局设置一个空cookie

在app.js中

  globalData: {
    cookie: ""
  }
})

2、在第一次请求的接口中获取这次用到的session的id并且作为数据返回

 @RequestMapping("/xxx")
    CommonResult xxx (HttpServletRequest request){
     
      HttpSession session=request.getSession();
   
      String sessionId=session.getId();
     
      return  sessionId;
    }

3、在微信小程序中处理业务的js中接受返回的id并且赋值给cookie

image.png

success: function (res) {
     app.globalData.cookie = 'JSESSIONID=' + res.data;
  }

4、在第二次请求的时候将cookie封装到请求头中

 header: {
        'content-type': 'application/x-www-form-urlencoded',
        'cookie': getApp().globalData.cookie
      },

这样子呢,这种简单粗暴的方式就可以解决不同controlle会产生不同的session的问题啦

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容