首頁 >web前端 >js教程 >封裝小程式中get請求和post請求成全域函數(程式碼)

封裝小程式中get請求和post請求成全域函數(程式碼)

不言
不言原創
2018-08-11 17:52:522248瀏覽

這篇文章帶給大家的內容是關於 封裝小程式中get請求和post請求成全域函數(程式碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

首先在app.js裡面複製這段程式碼

  /**
   * methods: 请求方式
   * url: 请求地址
   * data: 要传递的参数
   * callback: 请求成功回调函数
   * errFun: 请求失败回调函数
   */
  appRequest(methods, url, data, callback, errFun) {
    wx.request({
      url: url,
      method: methods,
      header: {        
      'content-type': methods == 'GET' ? 'application/json' : 'application/x-www-form-urlencoded'
      },
      dataType: 'json',
      data: data,
      success: function (res) {
        callback(res.data);
      },
      fail: function (err) {
        errFun(err);
      }
    })
  },

首先是get請求

const app = new getApp();// page/a/a.jsPage({  /**
   * 页面的初始数据
   */
  data: {

  },  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {    //懒人的写法 URL过长和传参多的时候比较不美观
    app.appRequest('get', 'https://www.apiopen.top/satinApi?type=1&page=1', {}, (res) => {
      console.log(res)
    }, (err) => {
      console.log('请求错误信息:  ' + err.errMsg);
    });    //稍微优雅一点的写法,其实就是多一行代码,但是美观多了,也好维护
    let url = 'https://www.apiopen.top/satinApi?type=1&page=1';
    app.appRequest('get', url, {}, (res) => {
      console.log(res)
    }, (err) => {
      console.log('请求错误信息:  ' + err.errMsg);
    });
  }
})

get請求時,data傳參寫為{ } 即可

然後是post請求

const app = new getApp();// page/b/b.jsPage({  /**
   * 页面的初始数据
   */
  data: {

  },  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {    //懒人的写法 URL过长和传参多的时候比较不美观
    app.appRequest('post', 'https://www.apiopen.top/satinApi', { type:1, page:1 }, (res) => {
      console.log(res)
    }, (err) => {
      console.log('请求错误信息:  ' + err.errMsg);
    });    //稍微优雅一点的写法,其实就是多一行代码,但是美观多了,也好维护
    let url = 'https://www.apiopen.top/satinApi';
    let data = {        type: 1,
        page: 1
    }
    app.appRequest('post', url, data, (res) => {
      console.log(res)
    }, (err) => {
      console.log('请求错误信息:  ' + err.errMsg);
    });
  }
})

當然了,如果每個URL都在頁面上面那就增大了維護成本,所以所有介面都應該放置在一個文件,我是選擇放在app.js裡面。下面是我的寫法

//app.js里面添加全局属性,和一个函数//全局请求URL处理函数
 globalRequestUrl(domainName, site) {   return this.globalData[domainName] + this.globalData[site]
 },//全局所有请求Url
 globalData: {
   domainNameA: 'https://www.apiopen.top',//请求域名A
   domainNameB: 'https://www.apiopen.top',//请求域名B
   siteA: '/satinApi'
 }

使用全域請求URL處理函數在頁面C裡面使用get請求

const app = new getApp();// page/c/c.jsPage({  /**
   * 页面的初始数据
   */
  data: {

  },  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {    //懒人的写法 URL过长和传参多的时候比较不美观
    app.appRequest('get', app.globalRequestUrl('domainNameA','siteA'), {}, (res) => {
      console.log(res)
    }, (err) => {
      console.log('请求错误信息:  ' + err.errMsg);
    });    //稍微优雅一点的写法,其实就是多一行代码,但是美观多了,也好维护
    let url = app.globalRequestUrl('domainNameA','siteA');
    app.appRequest('get', url, {}, (res) => {
      console.log(res)
    }, (err) => {
      console.log('请求错误信息:  ' + err.errMsg);
    });
  }
})

使用全域請求URL處理函數在頁面D裡面使用post請求

const app = new getApp();// page/d/d.jsPage({  /**
   * 页面的初始数据
   */
  data: {

  },  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {    //懒人的写法 URL过长和传参多的时候比较不美观
    app.appRequest('post', app.globalRequestUrl('domainNameA','siteA'), { type:1, page:1 }, (res) => {
      console.log(res)
    }, (err) => {
      console.log('请求错误信息:  ' + err.errMsg);
    });    //稍微优雅一点的写法,其实就是多一行代码,但是美观多了,也好维护
    let url = app.globalRequestUrl('domainNameA','siteA');
    let data = {        type: 1,
        page: 1
    }
    app.appRequest('post', url, data, (res) => {
      console.log(res)
    }, (err) => {
      console.log('请求错误信息:  ' + err.errMsg);
    });
  }
})
//传说中一行完成请求的代码在此,哈哈哈哈哈
app.appRequest('get', app.globalRequestUrl('domainNameA', 'siteA'), {}, (res) => {console.log(res)});

相關推薦:

#微信小程式中實作頁面下拉刷新和上拉載入更多的程式碼範例

微信小程式中如何設定全域變數(程式碼)

在微信小程式中實作同步請求的方法

以上是封裝小程式中get請求和post請求成全域函數(程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn