收藏
回答

发布后的小程序登录请求发送不出去,真机调试下却可以?

小程序名:优化环境

问题复现:

线上正式运行中的代码,在一键登录,进行wx.login并只储存openId的情况下,发送请求到后台去进行数据存储,但是一直显示发送不出去,后台也接收不到对应的信息。

但是,相同的代码在真机调试中是可以正常进行的,我这边可以提供完整的代码

// pages/bangding/index.js

const app = getApp();

Page({


  /**

   * 页面的初始数据

   */

  data: {


  },


  getUserProfile : function(e){

    var sf = this;

    wx.showLoading({

      title: '请求中....',

    })

    //调用wx.login 接口

    wx.login({

      success: function(e){

        //去后台换取sessionkey 

        sf.getSessionKeyByCode(e.code);

      }

    })

  },

  //用code去后台换取sessionKey

  getSessionKeyByCode: function(code){

    var sf = this;

    var vo = {

      appid : app.data.APP_ID,

      code : code

    }

    wx.request({

      url: app.data.baseUrl+"/loginCtr/wechatMiniAppLogin.action",

      header: app.data.HEADER,

      method: "get",

      timeout: 15000,

      data:vo,

      success: function(e){

        var res = e.data;

        ifres.code === 1 ){

          //调用去后台解析用户数据的接口

          wx.getUserInfo({

            success: function(e){

              ife.errMsg === "getUserInfo:ok" ){

                //去后台换取用户信息

                sf.do_login(e,res.data);

              }

            },

            fail : function(e){}

          })

        }else{

          wx.hideLoading();

          wx.showToast({

            title: '登录失败',

            duration : 1*1000

          })

        }

      },

      fail : function(e){}

    })

  },

  //微信登录

  do_login : function(e,sessionKey){

    var sf = this;

    var vo = {

      appid : app.data.APP_ID,

      sessionKey : sessionKey,

      signature : e.signature,

      rawData : e.rawData,

      encryptedData :  e.encryptedData,

      iv :  e.iv

    }

    wx.request({

      url: app.data.baseUrl+"/loginCtr/wechatMiniAppUserInfo.action",

      header: app.data.HEADER,

      method: "get",

      timeout: 15000,

      data:vo,

      success: function(e){

        var res = e.data;

        ifres.code === 1 ){

          //缓存登录凭证

          wx.setStorageSync('authorization', res.data.Authorization.token);

          //缓存用户openId

          wx.setStorageSync('openId', res.data.openId);

          //全局赋值

          app.data.authorization = res.data.Authorization.token;

          app.data.openId = res.data.openId;

          //页面跳转到首页

          wx.switchTab({

            url: './../login/index',

          })

        }

      },

      fail : function(e){}

    })

  }

})


回答关注问题邀请回答
收藏

2 个回答

  • charles
    charles
    2021-06-03

    楼主有解决吗?也遇到了这个问题

    2021-06-03
    有用
    回复
  • dreamhunter
    dreamhunter
    2021-04-25

    服务器域名配置了么?

    2021-04-25
    有用
    回复 7
    • web,小程序开发定制
      web,小程序开发定制
      2021-04-25
      配置过了,我开发者工具和真机调试,用的都是线上的域名。且关闭了不校验https那个选项的。测了都是没问题的。
      2021-04-25
      回复
    • dreamhunter
      dreamhunter
      2021-04-25回复web,小程序开发定制
      你开发工具清理全部缓存,再调试还能行么?
      appid : app.data.APP_ID, 这块会报未定义吧。还是你把appid写成固定的了?
      2021-04-25
      回复
    • web,小程序开发定制
      web,小程序开发定制
      2021-04-25
      appId是有写成固定的,开发工具全部清理缓存操作的。
      2021-04-25
      回复
    • web,小程序开发定制
      web,小程序开发定制
      2021-04-25回复dreamhunter
      我刚刚特意又去测试下了体验版本,测了也是没问题的。但是线上就是不行。要跪了
      2021-04-25
      回复
    • dreamhunter
      dreamhunter
      2021-04-25回复dreamhunter
      体验版加个showToast,看看卡到哪里了。
      也可以打开调试界面看看

       sf.do_login(e,res.data);像是在这部分出的问题,最新获取用户接口调整。比较麻烦
      2021-04-25
      回复
    查看更多(2)
登录 后发表内容