vue-resource拦截器

vue-resource拦截器

拦截器能做什么?
- 过滤重复请求
- 添加loading动画
- 统一添加header
- 统一处理异常信息


下面是一个简单的拦截器案例

import Vue from 'vue'
import VueResource from 'vue-resource'
Vue.use(VueResource)
const httpLockArr = {} //请求锁,避免同一条请求重复发送

Vue.http.interceptors.push(function (request, next) {
  let lastRequest = httpLockArr[request.url]
  request.url = Vue.prototype.base_url+request.url
  if (lastRequest) {
    return false
  }
  httpLockArr[request.url] = request
  //请求头设置
  request.headers.set('Content-Type', 'application/json;charset=utf-8')
  next(function (response) {
    httpLockArr[request.url] = null
    if (response.ok) {
      let data = response.data
      if (data.code == 0) {
        response.data = data.data
      } else if (data.code == 304) {
        alert('页面重定向')
      }else if(data.code == '401'){
        alert('根据需要处理')
      } else {
        showToast(data.msg, 2000)
        response.ok = false
      }
      return response
    } else {
    }
  })
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值