我们在与后台交互时,总是希望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的时候存储起来,
把session的值放到url里面作为url参数试试看
wx.request header可以取到,uploadfile取不到?
帮我看下,这样的写法有什么问题,我现在是后台获取不到参数
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)
}
})
}
不知道你们 我用java sprigMVC 的session格式是
Cookie:JSESSIONID=xxxxxxxx
我是直接把 响应 set-cookie 的 值 放到 cookie。然后 header设置 cookie
你的请求的那段代码能看下吗
都是不多
看看值对不对吧
我的是这样的JSESSIONID
Cookie:
JSESSIONID=xxxxxxxxx;
你的 是 SESSION
.do 请求应该是java 我也是java 你用的是什么框架
springMVC
用
Cookie:
JSESSIONID=xxxxxxxxx;
试试