Vue2.x中axios 拦截器

拦截器 (英文:Interceptors)会在 每次发起 ajax 请求 得到响应 的时候自动被触发。
应用场景:
① Token 身份认证
② Loading 效果
③ etc…

1.配置请求拦截器

通过 axios.interceptors.request.use(成功的回调, 失败的回调) 可以配置请求拦截器。

注意: 失败的回调函数可以被省略

axios.interceptors.request.use(config => {
//业务逻辑
  return config
}, error => {
//业务逻辑
  return Promise.reject(error)
})

1.1请求拦截器-Token认证和展示Loading效果

借助于 element ui 提供的 Loading 效果 组件(https://element.eleme.cn/#/zh-CN/component/loading) 可以方便的实现 Loading 效果的展示
//按需导入elementui的组件Loading
import { Loading } from 'element-ui'
import axios from 'axios'

// 配置请求拦截器-
axios.interceptors.request.use(config => {
  // 展示loading效果
  Loading.service({ fullscreen: true })
  // 配置token认证
  config.headers.Authorization = 'Bearer xxx'
  console.log(config)
  /* 固定写法return回去 */
  return config
})

无Token认证的请求头header:

 有Token认证的请求头header:(带Bearer )

 2.配置响应拦截器

2.1配置响应拦截器

通过 axios.interceptors.response.use(成功的回调, 失败的回调) 可以配置响应拦截器。

注意:失败的回调函数可以被省略

axios.interceptors.response.use(response => {
//业务逻辑
  return response
}, error => {
//业务逻辑
  return Promise.reject(error)
})

2.2响应拦截器 – 请求完后关闭 Loading 效果

调用 Loading 实例提供的 close() 方法即可关闭 Loading 效果


// 配置响应拦截器
axios.interceptors.response.use(response => {
  // 关闭loading效果
  Loading.service({ fullscreen: true }).close()
  return response
})

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值