收藏
回答

请求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  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

3 个回答

  • nickname
    nickname
    2018-09-26

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

    2018-09-26
    赞同 1
    回复 13
    • 凌荤霸
      凌荤霸
      2018-09-26

      我是在一个模块中调用的

      wx.request({

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


      2018-09-26
      回复
    • 凌荤霸
      凌荤霸
      2018-09-26回复凌荤霸

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


      2018-09-26
      回复
    • nickname
      nickname
      2018-09-26回复凌荤霸

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

      2018-09-26
      回复
    • 凌荤霸
      凌荤霸
      2018-09-26回复nickname

      这段是在我的前端的代码

      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回复nickname

      这段是我的后端的代码

      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
      回复
    查看更多(8)
  • 韬々
    韬々
    2018-09-26

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

    2018-09-26
    赞同
    回复 1
    • 凌荤霸
      凌荤霸
      2018-09-27

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

      但是还是要感谢你们!

      2018-09-27
      1
      回复
  • HellyW
    HellyW
    2018-09-26

    你是用第三方框架开发的么


    2018-09-26
    赞同
    回复 5
    • 凌荤霸
      凌荤霸
      2018-09-26

      koa 呀,node模板自带的

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

      不是   我说的是前端  没用wepy mpvue之类的么

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

      还有   你试试请求别的接口试试    不要由前端直接发起请求到腾讯

      2018-09-26
      回复
    • 凌荤霸
      凌荤霸
      2018-09-26回复HellyW

      前端到时没有用别的框架

      全是小程序demo自带的

      我这个请求openid也是在后台服务器请求的

      2018-09-26
      回复
    • 凌荤霸
      凌荤霸
      2018-09-26回复HellyW

      我 去试试别的接口!

      2018-09-26
      回复