近期做一个小程序耍一耍,发现小程序wx.requeest()并不自动维持会话状态。
大致思路
自己添加小程序发起请求时头部的Cookies;
代码
触发保存sessionid
 getSessionId:function(){
    let that = this;
    wx.request({
      url:app.globalData.baseUrl+"getSessionId",
      data:{
        'name':that.data.inputname //测试存储session内容
      },
      success :res=>{
        console.log(res);
        if(res.data.errno == 0){
          console.log(res.data.sessionid);
          wx.setStorage({ //可以采用缓存,这样可以长时间维持会话,也可以使用全局变量,维持一次会话。
            key: "PHPSESSID",
            data: res.data.sessionid  //这里的session是后端通过`session_id()`获取的
          })
        }
      }
    });
  }测试获取内容
  getSessionContext:function(){
    let that = this;
    wx.getStorage({
      key: 'PHPSESSID',
      success(res) {
        console.log(res.data)
        that.setData({
          sessionid: res.data
        });
      },
      complete(){
        wx.request({
          url: app.globalData.baseUrl + 'getSessionContext',
          header: {
            'Cookie': 'PHPSESSID=' + that.data.sessionid, // 默认值
          },
          success: res => {
            console.log(res);
            if (res.errno == 0) {
              that.setData({
                sessionContext: res.context
              })
            }
          }
        })
      }
    })
  },后端代码php
    public function getSessionId(){
        session('name',input('name'));
        return json(['errno'=>0,'sessionid'=>session_id(),'name'=>session('name')]);
    }
    public function getSessionContext(){
        return json(['errno'=>0,'context'=>session('name')?:'啥也没有']);
    }
                扫码在手机查看
 
您没有登录或者此篇文章不允许评论哟~~
暂无评论