小程序无法保持Session的问题

jquery的ajax(应该是浏览器)会自动维护cookie,而wx.request不会。
这涉及到session与cookie的关系及保存机制的问题。

那服务器如何识别单独用户的session,在一次连接下,如何判别该用户是属于哪一个session。
机制是,服务器生成一个sessionid辨别用户,并在相应中的cookie带上该sessionid值。在用户下一次请求时,请求头中cookie理应也带上该sessionid,以便服务器辨别用户会话。其中辨别机制和session存储机制涉及到序列和反序列化,在session.save_path中,为每一个session单独创建一个文件,文件名为sessionid,内容则是此次会话保存的session。

而wx.request并不会在请求中带上cookie,所以导致每次请求都被服务器分配一个新的sessionid,造成会话不能保持的后果。

解决办法

应在wx.request中带上该sessionid,或者重新封装wx.request。

wx.request({
  url: app.GlobalData.ApiUrl+"/jiancai/index/Uppassword",
  data:data,
  //将本地存储的Session_id通过请求头Cokkie带过去(先请求拿到)
  header:{
    Cookie:'PHPSESSID='+that.data.session_id
  },
  method:"POST",
  success(res){
     onsole.log(res)
  }
})
posted @ 2022-04-08 11:46  Dreams_log  阅读(93)  评论(0)    收藏  举报