微信小程序请求拦截器

const apiHttp = 'https://pdm.chiefchain.cn/'
const header = {
  cookie: 'JSESSIONID=' + wx.getStorageSync('JSESSIONID'),
  'content-type': 'application/x-www-form-urlencoded'
}

function request(url, method, data, complete) {
  url = apiHttp + url
  Object.assign(data, {
    tokenId: wx.getStorageSync('tokenId'),
  })
  let promise = new Promise(function(resolve, reject) {
    wx.request({
      url,
      header,
      data,
      method,
      success: res => {
        resolve(res)
      },
      fail: res => {
        reject(res)
      },
      complete: res => {
        wx.hideNavigationBarLoading()
        complete(res)
      }
    })
  })
  return promise
}
let fn = function() {}
module.exports = {
  $get: function({
    url,
    data = {},
    complete = fn
  }) {
    return request(url, 'GET', data, complete)
  },
  $post: function({
    url,
    data = {},
    complete = fn
  }) {
    return request(url, 'POST', data, complete)
  },
  $$get: function({
    url,
    data = {},
    complete = fn
  }) {
    wx.showNavigationBarLoading()
    return request(url, 'GET', data, complete)
  },
  $$post: function({
    url,
    data = {},
    complete = fn
  }) {
    wx.showNavigationBarLoading()
    return request(url, 'POST', data, complete)
  },
}

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
微信小程序请求拦截可以在使用 wx.request 发起请求之前,对请求进行拦截和处理。你可以通过以下步骤来实现请求拦截: 1. 在 app.js 或者需要使用请求拦截的页面中,定义一个全局变量 interceptorList 来存储拦截列表: ```javascript App({ // 全局变量 globalData: { interceptorList: [] } }) ``` 2. 创建一个拦截对象,包含 request 和 response 两个方法。这些方法会在请求发送之前和请求响应之后被调用: ```javascript // 拦截对象 const interceptor = { // 请求拦截 request: (config) => { // 对请求进行处理,比如添加 token 等 return config; }, // 响应拦截 response: (response) => { // 对响应进行处理,比如处理错误码等 return response; } } ``` 3. 在需要使用拦截的页面中,将拦截对象添加到全局变量 interceptorList 中: ```javascript // 获取全局变量 const app = getApp(); // 将拦截添加到列表中 app.globalData.interceptorList.push(interceptor); ``` 4. 最后,在发起请求的地方使用 wx.request,并在其中执行拦截的 request 方法: ```javascript wx.request({ // 其他配置项 ... success: (response) => { // 获取全局变量 const app = getApp(); // 遍历拦截列表,执行响应拦截方法 app.globalData.interceptorList.forEach((interceptor) => { response = interceptor.response(response); }) // 处理响应结果 ... } }) ``` 通过以上步骤,你可以实现微信小程序请求拦截,对请求和响应进行处理。你还可以根据具体需求,进一步完善拦截的功能,比如错误统一处理、添加请求头等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值