微信小程序不能保存Cookie,导致每次wx.request到服务端都会创建一个新的会话(传过去的sessionid会变化),小程序端就不能保持登录状态了。
一个比较简单的办法就是把服务端response的Set-Cookie中的值保存到Storage中。
登录成功后,添加Cookie:
wx.setStorageSync("cookieKey", res.header["Set-Cookie"]);
然后调用接口时,在header中加入:
'Cookie': wx.getStorageSync('cookieKey')
接口调用由之前的:
wx.request({ url: 'test.php', data: { x: '', y: '' }, header: { 'content-type': 'application/json' }, success (res) { console.log(res.data) } }) |
变为:
wx.request({ url: 'test.php', data: { x: '', y: '' }, header: { 'content-type': 'application/json' , 'Cookie': wx.getStorageSync('cookieKey') }, success (res) { console.log(res.data) } }) |