近期做一个小程序耍一耍,发现小程序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')?:'啥也没有']);
}
扫码在手机查看
您没有登录或者此篇文章不允许评论哟~~
暂无评论