大家帮我看看我错在哪了,真不会了!
wx.request({
url: 'https://api.weixin.qq.com/sns/jscode2session?appid=' + appid + '&secret=' + secret + '&js_code=' + ctx.request.body.code + '&grant_type=authorization_code',
data: {
code: ctx.request.body.code
},
method: 'GET',
success: function(res) {
ctx.response.body = res.openid
},
fail(res) {
},
complete() {
}
});
大家帮我看看我错在哪了,真不会了!
是不是引用了未定义的变量 wx
我是在一个模块中调用的
wx.request({
但是这个API不是公共的吗?
我的意思是,若自己写一个业务处理函数模块,调药API需要require什么吗,之类的
wx.request不需要引入什么,你提供一下代码片段
这段是在我的前端的代码
let getopenid =function (that) {
wx.login({
success: function(loginres) {
console.log('login success ')
console.log(loginres)
if (loginres.code) {
wx.request({
url: 'https://8uesradm.qcloud.la/weapp/mf/getopenid',
data: {
code: loginres.code
},
method: 'POST',
header: {
//'content-type': 'application/json'
"Content-Type": "application/x-www-form-urlencoded"
},
success: function (res) {
console.log('getOpenID success')
console.log(res)
var openid = res.data.openid;
return openid;
}
})
} else {
console.log('获取用户登录态失败!' + logres.errMsg)
}
}
});
}
module.exports = {
getopenid,
}
这段是我的后端的代码
function getopenid(ctx, next) {
const id = 'xxxxx'
const sec = 'xxxxx'
const code = ctx.request.body.code
let url = 'https://api.weixin.qq.com/sns/jscode2session?appid=' + id + '&secret=' + sec + '&js_code=' + code + '&grant_type=authorization_code'
let opid
request(url, function(error, res, body) {
if (!error && res.statusCode == 200) {
opid = res
} else {
opid = 'request error'
}
});
ctx.res.body = opid
}
运行代码片段没有复现任何问题。如果确认有问题,请详细描述问题出现路径
谢谢如此费心的解答,之前代码中的确得不到openid的值,今天上午又折腾了阵子,增加了 Promise后接到返回值了,
但是还是要感谢你们!