收藏
回答

checkSession报错

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug wx.checkSession 客户端 6.6.7 2.0.0


小程序偶尔报上面错误,请问有人遇到过吗?

最后一次编辑于  2018-10-12  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

2 个回答

  • 社区技术运营专员-白柿子
    社区技术运营专员-白柿子
    2018-10-15

    是否是相关的数值没带上呢?


    2018-10-15
    赞同
    回复
  • 昌
    2018-10-15

    不可能哦,我们小程序每天有600多访问量,大部分客户都没有问题,只是小程序后台偶尔会报这个错误。

    2018-10-15
    赞同
    回复 5
    • 社区技术运营专员-白柿子
      社区技术运营专员-白柿子
      2018-10-15

      已反馈

      2018-10-15
      回复
    • 僵尸浩
      僵尸浩
      2018-10-16

      可以确认一下调用checkSession的回调函数里有没有错误吗

      2018-10-16
      回复
    • 昌
      2018-10-16回复僵尸浩

      我贴上我的代码。

      每次用户进入小程序,我会先调用app.checkSession,如果会话没有过期,就直接用回用户本地的旧token,如果已经过期,则重新申请微信登录并生成新的Token。微信报的refreshSession callBack好像并不是我这里抛的异常。出于安全考虑,屏蔽了我的网址,请见谅。


      《app.js》代码片段------>>>>

      checkSession:function(cb){

          wx.checkSession({

              success: function () {

                  //session 未过期,并且在本生命周期一直有效,无需更新token

                  var token = wx.getStorageSync("token")

              

                  if(token != null && token != ''){

                      typeof cb == "function" && cb(token)

                  }else{

                      wx.login({

                          success: function (res) {

                          //发起网络请求

                          wx.request({

                              url: 'https://xxxxxxxxxxxxxx.com/user/onLogin.do',

                              data: {

                                  code: res.code

                              },

                              success: function (res) {

                                  wx.setStorageSync("token", res.data)

                                  typeof cb == "function" && cb(res.data)

                              },

                              fail: function (e) {

                                  wx.showModal({

                                      title: '系统服务器繁忙',

                                      showCancel: false,

                                      content: '系统服务器繁忙,请稍后再试!'

                                  })

                              }

                          })

                      }

                  })

              }

           },

           fail: function () {

              //调用登录接口

              wx.login({

                  success: function (res) {

              

                  var code = res.code;

                  //发起网络请求

                  wx.request({

                      url: 'https://xxxxxxxxxx.com/user/onLogin.do',

                      data: {

                          code: code

                      },

                      success: function (res) {

                          wx.setStorageSync("token", res.data)

                          typeof cb == "function" && cb(res.data)

                      },

                      fail:function(e){

                          wx.showModal({

                              title: '系统服务器繁忙',

                              showCancel: false,

                              content: '系统服务器繁忙,请稍后再试!'

                          })

                      }

                  })

              }

         })

      }

          })

      }


      2018-10-16
      回复
    • 僵尸浩
      僵尸浩
      2018-10-16回复

      你在success里调用了外部传入的cb函数,有可能是cb函数里有错误。

      建议给success函数整个函数体包上try...catch,看看还会不会有问题

      2018-10-16
      回复
    • 昌
      2018-10-16回复僵尸浩

      您的意思是,cb里面如果有出错,也会导致上面出现报错吗?如果是的话,我把所有cb排查一下。我看到refreshSession这个函数好像是底层的。

      2018-10-16
      回复