小程序基于wx.request做二次请求封装,主要是起到请求拦截作用

第一步建一个封装wx.request的文件

const devUrl = "https://xxxxxx"; // 基准路径
/**
 * 
 * @param {路径} url 
 * @param {请求方式} method 
 * @param {数据} data 
 * @param {请求头} header 
 */
function request(url, method = 'GET', data = {}, header = {'content-type': 'application/x-www-form-urlencoded'}) {
  let bseaurl = url.slice(0, 4)
  let userinfo = wx.getStorageSync('userinfo')
  // 不是用户的接口统一再前面添加api/
  if (bseaurl == 'user') {
      // 处理用户的接口,主要看你们后台跟你这边的协商是要什么东西
  } else {
      url = "api/" + url 
  }
  wx.showNavigationBarLoading();
  let promise = new Promise(function (resolve, reject) {
    wx.request({
      url: devUrl + url,
      header: header,
      data: data,
      method: method,
      success: function (res) {
        if (typeof res.data === "object") {
            // 后台给你定义的状态码去做判断
            // if (res.data.status === -200) {
            //   wx.showToast({
            //     title: "为确保能向您提供最准确的服务,请退出应用重新授权",
            //     icon: "none"
            //   });
            //   reject("请重新登录");
            // } else if (res.data.status === -201) {
            //   wx.showToast({
            //     title: res.data.msg,
            //     icon: "none"
            //   });
            //   setTimeout(function () { // 跳转至错误页面
            //     // wx.reLaunch({
            //     //   url: "**********"
            //     // });
            //   }, 1000);
            //   reject(res.data.errmsg);
            // }
        }
        resolve(res);
      },
      fail: reject,
      complete: function () {
        wx.hideNavigationBarLoading();
      }
    });
  });
  return promise;
}

module.exports = {
  devUrl: devUrl,
  request: function (url, method,data, header) {
    return request(url, method, data, header);
  }
};

// 第二步开始使用自己封装的请求拦截

// 引入之前封装好的请求拦截
let Requsets = require("../utils/request")
// 订单详情
export function orderSearchDetail(obj) {
  return Requsets.request(`user/xxxxxx?uid=${obj.uid}&orderNo=${obj.orderNo}`,'GET')
}

猜你喜欢

转载自blog.csdn.net/Hgh_1997/article/details/100096786