1.openid的获取过程是这样的:
先调用wx.login 拿到code, 然后用code调后台的接口获取到openid,把openid存到storage。
每次调后台接口的时候,从storage拿openid。
另外,在页面的onShow方法中,会判断storage中有没有openid,如果没有,会再获取一次。
2.现在的现象:
调用后台的接口的时候提示openid为空,还是偶现问题。刷新小程序后再调用同一个接口,就不会出现这个问题。
3.代码如下:
page/test/test.js
onShow: function () {
var _openid = wx.getStorageSync("openid");
if (!_openid){
wx.login({
success: res => {
// 发送 res.code 到后台换取 openId, sessionKey, unionId
utils.getOpenId(res.code, function (response) {
wx.setStorage({
key: 'openid',
data: response.data.resBody.openid,
})
}, function () {
//console.log("调用失败");
})
}
})
}
}
res是什么啊怎么解释,有懂哥吗
接口请求返回的数据打印过了吗 是不是存了undefined
那么,什么情况会返回一个undefined呢?
为什么要在前端存储openid?