解决小程序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
        })
      }
    })

  

posted on 2019-08-29 15:04  婧星  阅读(2770)  评论(0编辑  收藏  举报

导航