封装的 request 的代码
- /**
- * @desc API 请求接口类封装
- */
- /**
- * POST 请求 API
- * @param {String} url 接口地址
- * @param {Object} params 请求的参数
- * @param {Object} sourceObj 来源对象
- * @param {Function} successFun 接口调用成功返回的回调函数
- * @param {Function} failFun 接口调用失败的回调函数
- * @param {Function} completeFun 接口调用结束的回调函数 (调用成功, 失败都会执行)
- */
- function requestPostApi(url, params, sourceObj, successFun, failFun, completeFun) {
- requestApi(url, params, 'POST', sourceObj, successFun, failFun, completeFun)
- }
- /**
- * GET 请求 API
- * @param {String} url 接口地址
- * @param {Object} params 请求的参数
- * @param {Object} sourceObj 来源对象
- * @param {Function} successFun 接口调用成功返回的回调函数
- * @param {Function} failFun 接口调用失败的回调函数
- * @param {Function} completeFun 接口调用结束的回调函数 (调用成功, 失败都会执行)
- */
- function requestGetApi(url, params, sourceObj, successFun, failFun, completeFun) {
- requestApi(url, params, 'GET', sourceObj, successFun, failFun, completeFun)
- }
- /**
- * 请求 API
- * @param {String} url 接口地址
- * @param {Object} params 请求的参数
- * @param {String} method 请求类型
- * @param {Object} sourceObj 来源对象
- * @param {Function} successFun 接口调用成功返回的回调函数
- * @param {Function} failFun 接口调用失败的回调函数
- * @param {Function} completeFun 接口调用结束的回调函数 (调用成功, 失败都会执行)
- */
- function requestApi(url, params, method, sourceObj, successFun, failFun, completeFun) {
- if (method == 'POST') {
- var contentType = 'application/x-www-form-urlencoded'
- } else {
- var contentType = 'application/json'
- }
- wx.request({
- url: url,
- method: method,
- data: params,
- header: {'Content-Type': contentType},
- success: function (res) {
- typeof successFun == 'function' && successFun(res.data, sourceObj)
- },
- fail: function (res) {
- typeof failFun == 'function' && failFun(res.data, sourceObj)
- },
- complete: function (res) {
- typeof completeFun == 'function' && completeFun(res.data, sourceObj)
- }
- })
- }
- module.exports = {
- requestPostApi,
- requestGetApi
- }
使用第一步
在 app.js 中引入封装的文件 const request = require('./utils/request.js') , 然后定义接口域名 apiUrl: 'https://www.geekxz.com/',
- /**
- * @desc 简单 API 请求示例
- */
- const request = require('./utils/request.js')
- App({
- request: request,
- getUserInfo:function(cb){
- var that = this
- if(this.globalData.userInfo){
- typeof cb == "function" && cb(this.globalData.userInfo)
- }else{
- // 调用登录接口
- wx.login({
- success: function () {
- wx.getUserInfo({
- success: function (res) {
- that.globalData.userInfo = res.userInfo
- typeof cb == "function" && cb(that.globalData.userInfo)
- }
- })
- }
- })
- }
- },
- /**
- * 定义的接口域名
- */
- apiUrl: 'https://www.geekxz.com',
- globalData:{
- userInfo:null
- }
- })
调用封装好的方法
- var app = getApp()
- Page({
- /**
- * 存储页面数据
- */
- data: {
- expressData : {},
- },
- /**
- * 接口调用成功处理
- */
- successFun: function(res, selfObj) {
- selfObj.setData({
- expressData : res,
- })
- },
- /**
- * 接口调用失败处理
- */
- failFun: function(res, selfObj) {
- console.log('failFun', res)
- },
- /**
- * 页面加载时初始化数据
- */
- onLoad: function() {
- var url = app.apiUrl+'/query'
- var params = {
- type : 'zhongtong',
- postid : '424621263550',
- }
- //@todo 网络请求 API 数据
- app.request.requestGetApi(url, params, this, this.successFun, this.failFun)
- }
- })
- .
来源: http://www.bubuko.com/infodetail-2699978.html