由於小程序端兩次請求的 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 }) } })