小程序請求攔截,響應攔截


前端在使用數據請求的時候,一般為了安全考慮都會添加請求頭,以及token檢驗等操作,還有根據后端返回的不同狀態進行不同處理,例如:后台返回token超時,我們就需要重新獲取token,然后才能請求數據.

首先是通用方法:就是參數有點麻煩,每次使用都需要傳很多參數,並且很多都是重復的,不是很友好.

export function wxPromise(fn) {
  return function (obj = {}) {
    return new Promise((resolve, reject) => {
      obj.success = res => {
        resolve(res)
      };
      obj.fail = res => {
        reject(res)
      };
      fn(obj)
    })
  }
}

然后優化一下,分別封裝POST以及GET請求

// 這是對post請求的封裝
export function post(url, data = {}) {
  return new Promise((resolve, reject) => {
    //網絡請求
    //console.log(baseUrl)
    wx.request({
      url: baseUrl + url,
      data,
      method: 'POST',
      header: {
        "Content-Type": "application/json",
        'token': app.globalData.token,
        'openId': app.globalData.openid
      },
      success: function (res) {//服務器返回數據
      //console.log("cg")
        resolve(res);
      },
      fail: function (error) {
        //console.log("sb")
        reject(error);
      }
    })
  });
}
// 這是對get請求的封裝
export function get(url, data = {}) {
  return new Promise((resolve, reject) => {
    //網絡請求
    wx.request({
      url: baseUrl + url,
      data,
      method: 'GET',
      header: {
        "Content-Type": "application/json",
        'token': app.globalData.token,
        'openId': app.globalData.openid
      },
      success: function (res) {//服務器返回數據
        resolve(res);
      },
      fail: function (error) {
        reject(error);
      }
    })
  });
}

然后我們在使用的時候就只需要傳入url以及參數就可以了,如果有需要還可以在以上封裝中對參數  以及后端返回的數據進行處理,還有狀態的處理等,根據自己項目需要吧.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM