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 {
    }
  })
})

猜你喜欢

转载自blog.csdn.net/bule_chen/article/details/78624705
今日推荐