• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

小程序开发——统一请求方法

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一般我们习惯将请求接口的方法统一起来,变成公共方法
但是在小程序中,似乎遇到了一些问题,官方给的示例是:

this.setData({
    name: 'MINA'
})

this局限了请求的地方,似乎只能在每个业务页面内,setData方法的参数不够配置化
以下是我参考一些资料之后得到的解决方案

util.js

var apiHost = ".....";

//url添加最后的相对路径即可
function getRequest(url, that, targetName) {
  wx.request({
    url: apiHost + url,
    method: 'GET',
    header: {
      'content-type': 'application/json' // 默认值
    },
    success: function (res) {
      var param = {};
      param[targetName] = res.data;
      that.setData(param);
    },
    fail: function (error) {
      console.log(error);
    }
  })
}

function postRequest(url, data, that, targetName ) {
  var token='你的令牌';   //比如存储在Storage中
  wx.request({
        url: apiHost + url,
        data: data,
        method: 'POST',
        header: {
            'content-type': 'application/json', // 默认值
            'Authorization': "Bearer " + token
        },
        success: function (res) {
            var param = {};
            param[targetName] = res.data;
            that.setData(param);
        },
        fail: function (error) {
            console.log(error);
        }
    })
}

module.exports.getRequest = getRequest;
module.exports.postRequest = postRequest;

调用api

const util = require('../../utils/util.js')

Page({
  data: {
    logInResult:{},
    sessionKey:"",
  },
  logIn:function(e){
    //登录某系统
    util.postRequest('/Account/LogInForMiniProgram', { "UserName": this.data.userName, "Password": this.data.password }, this, "logInResult");
  },
  wxLogInAndGetSessionKey: function (e) {
    //注意作用域,此处,在wx的方法里面拿到的this不对(http://jsrocks.org/cn/2014/10/arrow-functions-and-their-scope)
    var that = this;
    wx.login({
      success: function (res) {
        console.log(res)
        if (res.code) {
          //调用后端接口获得sessionkey
          util.postRequest('/AccountForMiniProgram/WechatGetSessionKey', { id: res.code }, that, "sessionKey");
        } else {
          console.log('登录失败!' + res.errMsg)
        }
      }
    });
  },
  onLoad: function () {
  }
})

示例代码

示例代码


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
给小程序组件创建slot发布时间:2022-07-18
下一篇:
小程序图片懒加载发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap