小程序中session同步问题求解
我们在与后台交互时,总是希望session一致,目前我们解决了wx.request中post和get请求的session同步问题,但是在测试wx.uploadFile时遇到了困难。
常规性的,我们考虑在头文件中加入cookie存储sessionid,如下:‘Cookie’: ‘SESSION=’ + session_id
但是实际情况,在wx.uploadFile的header属性中加入不行,尝试在formData中加入也不行,这导致后端请求时,找不到session,因而报错~~
是否有其他解决方案,恭请大佬提点~~
已经解决,无法正常传session的原因是我们的session管理使用了redis,传统的做法是不行的,我之前的写法是对的’Cookie’: ‘SESSION=’ + session_id,然后’content-type’: ‘application/x-www-form-urlencoded’,
错误的主要原因是我的全局rd_session没有在getsession的时候存储起来,
4 回复
帮我看下,这样的写法有什么问题,我现在是后台获取不到参数
uploadFile: function (){ var _this= this ; var url = app.globalData.BASE_URL + '/wx.do?method=wxUpload' ; var session_id = app.globalData.rd_session; wx.uploadFile({ url: url, filePath: _this.data.src[ 0 ], name: 'file' , header: { 'content-type' : 'multipart/form-data' , 'charset' : 'utf-8' , 'Cookie' : 'SESSION=' + session_id }, formData:{ loginFrom: "wx" }, success(res) { console.log(res) wx.showToast({ title: '上传成功' , icon: 'success' , duration: 1000 }) }, fail({ errMsg }) { console.log( 'uploadImage fail, errMsg is' , errMsg) } }) } |