解决小程序sessionid不一致

Posted lvxisha

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决小程序sessionid不一致相关的知识,希望对你有一定的参考价值。

由于小程序端两次请求的 sessionid 不一致, 导致后端无法取得 session,解决办法:
在登录时获取sessionid

//第一次请求登录接口时保存到sessionid中
success: function (res) 
          wx.hideLoading();
          wx.removeStorageSync(‘sessionid‘);//每次登录时清楚缓存
          if (res.data.code == "0000") 
            if (res.data.data.roleList[0].value ==‘student‘)
              wx.showToast(
                title: ‘登录成功‘,
                icon: ‘success‘,
                duration: 1000
              )
              wx.setStorageSync(‘sessionid‘, res.header[‘Set-Cookie‘]); //保存Cookie到Storage
              
            
           else 
            wx.showToast(
              title: ‘登录失败‘,
              icon: ‘none‘,
              duration: 2000
            )
          
        ,

  在后面进行页面的请求时,在请求头header里加上你存储的这个Set-Cookie的值
  

wx.request(
      url: ‘https://xxxx/examResult/selectWxListStudentStudyStatistic‘,
      method: ‘post‘,
      header: 
        ‘content-type‘: ‘application/x-www-form-urlencoded‘,//解决请求不到数据
        ‘cookie‘: wx.getStorageSync("sessionid")//读取sessionid,当作cookie传入后台将phpSESSID做session_id使用
      ,
      success: function (res) 
          wx.hideLoading();//去掉loading
      ,
      fail: function (e) 
        wx.showToast(
          title: ‘服务器出现错误‘,
          icon: ‘none‘,
          duration: 2000
        )
      
    )

  

以上是关于解决小程序sessionid不一致的主要内容,如果未能解决你的问题,请参考以下文章

前后端分离(跨域)sessionid不一致Safari浏览器解决方案(不能保持会话或者不能存储cookie)

分析HttpServletRequest的sessionId不一致的原因

分析HttpServletRequest的sessionId不一致的原因

“Ajax请求后台,后台两次session不一致”问题解决

restclient,微信小程序请求sessionID不一样导致取不到指定session的解决办法

小工匠聊架构-Redis 缓存一致性设计