收藏
回答

请求openid出现错误 error: "wx is not defined"

大家帮我看看我错在哪了,真不会了!

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() {

}

});


大家帮我看看我错在哪了,真不会了!

最后一次编辑于  2018-09-26
回答关注问题邀请回答
收藏

2 个回答

  • 灵芝
    灵芝
    2018-09-26

    是不是引用了未定义的变量 wx

    2018-09-26
    有用 1
    回复 14
    • 2018-09-26

      我是在一个模块中调用的

      wx.request({

      但是这个API不是公共的吗?


      2018-09-26
      回复
    • 2018-09-26回复

      我的意思是,若自己写一个业务处理函数模块,调药API需要require什么吗,之类的


      2018-09-26
      回复
    • 灵芝
      灵芝
      2018-09-26回复

      wx.request不需要引入什么,你提供一下代码片段

      2018-09-26
      回复
    • 2018-09-26回复灵芝

      这段是在我的前端的代码

      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,


      }


      2018-09-26
      回复
    • 2018-09-26回复灵芝

      这段是我的后端的代码

      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


      }


      2018-09-26
      回复
    查看更多(9)
  • 韬々
    韬々
    2018-09-26

    运行代码片段没有复现任何问题。如果确认有问题,请详细描述问题出现路径

    2018-09-26
    有用
    回复 1
    • 2018-09-27

      谢谢如此费心的解答,之前代码中的确得不到openid的值,今天上午又折腾了阵子,增加了 Promise后接到返回值了,

      但是还是要感谢你们!

      2018-09-27
      1
      回复
登录 后发表内容