微信小程序的机制跟以往的 http 请求插件不同,小程序并没有帮我们保存 cookie,所以我在开发小程序做图形验证码的时候遇到点击图片和发送验证码的时候是两个不同的session_id,这一点比较特别,所以我查网上的解决方法,并且总结出一些方法

我们在使用wx.request的时候,我们需要调用wx.setStorageSync这个方法来存放我们的当前请求的session_id,代码如下

1
2
3
4
5
6
7
8
9
10
11
wx.request({
url: url,
data: params,
header: header,
method: method,
success: res => {
if(res.statusCode == 200){
wx.setStorageSync("sessionid", res.header["Set-Cookie"]) // 保存此次请求的cookie
}
}
});

拿请求获取手机验证码来说,我们在下次请求的收可以带上上次的cookie

1
2
3
4
5
6
7
8
9
10
11
12
13
14
let header = {
'Cookie': wx.getStorageSync("sessionid")
}
wx.request({
url: url,
data: params,
header: header,
method: method,
success: res => {
if(res.statusCode == 200){
........ // 你的代码
}
}
});