微信小程序之封裝wx.request攔截器

前言

微信小程序通常使用wx.request發(fā)起 HTTPS 網(wǎng)絡(luò)請求
微信小程序官方說明文檔:https://developers.weixin.qq.com/miniprogram/dev/api/network/request/wx.request.html

在接口請求中,經(jīng)常會遇到需要攔截器的場景,如統(tǒng)一接口報(bào)錯提示、統(tǒng)一登錄跳轉(zhuǎn)、統(tǒng)一header配置。

wx.request攔截器
  • network.js
/**
 * @module request
 * 網(wǎng)絡(luò)ajax請求,并默認(rèn)處理失敗和成功提示等,并保留原來wx.request全部功能。
 * @param {object} requestObject  跟wx.request相同的請求參數(shù)
 */
 var app = getApp()
 function request(requestObject) {
  /* headers統(tǒng)一配置 */
  if(!requestObject||!requestObject.header){
    requestObject.header = {}
  }
  /* request事件攔截 */
  var old_complate = requestObject.complete  
  var old_success = requestObject.success  
  var old_fail = requestObject.fail  
  /* request成功 */
  requestObject.success = function (res) {  
    old_success && old_success(res)
    const code = res.data.code 
    // 認(rèn)證令牌有誤或已過期,請重新獲取;強(qiáng)制跳轉(zhuǎn)到登錄頁面
    if (['AUTHORIZATION_SESSION_NOT_FOUND', 'AUTHORIZE_TOKEN_INVALID'].includes(code)){
      wx.removeStorageSync('access_token')
      wx.removeStorageSync('userInfo')
      wx.showModal({
        content: res.data.message,
        showCancel: false,
        success: () => {
          wx.reLaunch({
            url: '/pages/login/login'
          })
        }
      })
      return
    }
    if (code === 'SUCCESS') {
      return
    }
    app.showToast(res.data.message)
  }
  /* request失敗 */
  requestObject.fail = function (res) {
    old_fail && old_fail(res)
    app.showToast(res.data.message) 
  }
  /* request完成 */
  requestObject.complete = function (res) {
    old_complate && old_complate(res)
  }
  var requestTask = wx.request(requestObject)
  return requestTask  
}
module.exports = {
  request
}
  • 攔截器的使用:配置與wx.request(requestObject)完全一致
const net = require('../../utils/network.js');
net.request({
      url: ``,
      method: 'post',
      data: { },
      header: { },
      success: res => { },
      fail: res => { },
      complete: res => { }
    })
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容