你请求传的参数是sessionCode,服务器取参数用code,肯定拿不到客户端传过去的参数呀
40029 已尝试所有解决方案仍无效40029错误, 已经尝试过网上其他人的所有解决办法仍然无效: 重新在开发者工具里建立一个项目,填写appID, 我甚至重新注册了一个小程序,也无效。 已确保代码中没有用code两次 正常的一套逻辑,开发工具里前端拿到code, 发送给自己的本地服务器后端: [代码] [代码][代码]wx.login({[代码][代码] [代码][代码]success: res => {[代码][代码] [代码][代码]if [代码][代码](res.code) {[代码][代码] [代码][代码]wx.request({[代码][代码] [代码][代码]method: [代码][代码]"GET" [代码][代码],[代码][代码] [代码][代码]url: [代码][代码]"http://localhost:8000/wechatSession?sessionCode=" [代码][代码]+ res.code,[代码][代码] [代码][代码]success: res => {[代码][代码] [代码][代码]console.log(res)[代码] [代码] [代码][代码]}[代码][代码] [代码][代码]})[代码][代码] [代码][代码]} [代码][代码]else [代码][代码]{[代码][代码] [代码][代码]console.log( [代码][代码]'登录失败!' [代码][代码]+ res.errMsg)[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码][代码]})[代码][代码][代码] 后端代码: [代码]app.get([代码][代码]"/wechatSession"[代码][代码], [代码][代码]function[代码] [代码](req, res) {[代码] [代码] [代码][代码]const wechatCode = req.query.code[代码][代码] [代码][代码]axios.get([代码][代码]'https://api.weixin.qq.com/sns/jscode2session?appid='[代码] [代码]+[代码][代码] [代码][代码]appID +[代码][代码] [代码][代码]'&secret='[代码] [代码]+[代码][代码] [代码][代码]appSecret +[代码][代码] [代码][代码]'&js_code='[代码] [代码]+[代码][代码] [代码][代码]wechatCode +[代码][代码] [代码][代码]'&grant_type=authorization_code'[代码][代码])[代码][代码] [代码][代码].then([代码][代码]function[代码] [代码](response) {[代码][代码] [代码][代码]res.send(response.data)[代码][代码] [代码][代码]})[代码][代码] [代码][代码].[代码][代码]catch[代码][代码]([代码][代码]function[代码] [代码](error) {[代码][代码] [代码][代码]console.log(error);[代码][代码] [代码][代码]});[代码][代码]});[代码] 很奇怪的一件事情: 我如果直接在微信开发者工具里去拿session id的话就可以返回成功,但是通过本地服务器就不行,也试过用生产环境的服务器,同样不行。
2018-08-03