文章目录

  • 前言
  • 一、安装依赖
  • 二、定义拦截器
    • 1.创建一个interceptors.js文件用于定义拦截器
    • 2.注册插件
      • 3.发送请
  • 总结

前言

提示:

Vue请求拦截器通常用于在发送请求之前对请求进行一些处理,例如添加请求头、验证用户身份、统一处理错误等。在Vue中实现请求拦截器需要借助Vue的插件机制和axios库


`提示:

一、安装依赖

示例:在Vue项目中使用axios库,需要先安装axios和vue-axios依赖:

npm install axios vue-axios

二、定义拦截器

1.创建一个interceptors.js文件用于定义拦截器

代码如下(示例):

import axios from 'axios'// 请求拦截器
axios.interceptors.request.use(function (config) {// 在请求发送之前做些什么// 添加Authorization请求头,用于验证用户身份const token = localStorage.getItem('token')if (token) {config.headers.Authorization = `Bearer ${token}`}return config;
}, function (error) {// 对请求错误做些什么return Promise.reject(error);
})// 响应拦截器
axios.interceptors.response.use(function (response) {// 对响应数据做些什么return response;
}, function (error) {// 对响应错误做些什么// 统一处理HTTP错误状态码if (error.response) {switch (error.response.status) {case 401:// 跳转到登录页面break;case 404:// 处理404错误break;default:// 处理其它HTTP错误}}return Promise.reject(error);
})

定义了两个拦截器,分别是请求拦截器和响应拦截器。在请求拦截器种,可以对请求做一些公共的处理,例如添加请求头、验证用户身份。在响应拦截器中,可以对响应数据做一些公共处理,例如统一处理http错误状态码

2.注册插件

代码如下(示例):

import Vue from 'vue'
import axios from 'axios'
import VueAxios from 'vue-axios'
import interceptors from './interceptors'Vue.use(VueAxios, axios)
Vue.use(interceptors)

上面的代码中,Vue.use()方法用于注册插件,参数为插件对象。其中,VueAxios是用于将axios库添加到Vue实例中的插件,interceptors是我们定义的拦截器插件。


3.发送请

在组件中,可以通过this.axios访问vue实例中的axios实例,从而发送请求

export default {methods: {fetchData () {this.axios.get('/api/data').then(response => {// 处理响应数据}).catch(error => {// 处理错误})}}
}

总结

提示:上面的代码中,通过this.axios发送了一个GET请求,并在then()方法中处理响应数据,在catch()方法中处理错误。由于我们已经在拦截器中添加了Authorization请求头用于验证用户身份,因此发送的所有请求都会自动添加该请求头。

【详解Vue中请求拦截器】相关推荐

  1. 详解Vue中watch的高级用法

    转载自  详解Vue中watch的高级用法 我们通过实例代码给大家分享了Vue中watch的高级用法,对此知识点有需要的朋友可以跟着学习下. 假设有如下代码: 1 2 3 4 5 6 7 8 9 10 ...

  2. vue中axios拦截器的使用

    1.拦截器分为request请求拦截器和response响应拦截器 PS:request请求拦截器:发送请求前统一处理,如:设置请求头headers.应用的版本号.终端类型等. response响应拦 ...

  3. 关于vue中axios拦截器的使用

    预期目标:解决请求任意接口之前进行统一拦截判断,看是否返回500或404等错误并在页面给出错误提示. 一.刚开始看官方文档,如下: 备注:将代码加到页面中发现并未起作用,百度谷歌搜索一番,发现都是千篇 ...

  4. vue指令写在html中的原理,详解Vue中的MVVM原理和实现方法

    对Vue中的MVVM原理解析和实现首先你对Vue需要有一定的了解,知道MVVM.这样才能更有助于你顺利的完成下面原理的阅读学习和编写下面由我阿巴阿巴的详细走一遍Vue中MVVM原理的实现,这篇文章大家 ...

  5. python类装饰器详解-python 中的装饰器详解

    装饰器 闭包 闭包简单的来说就是一个函数,在该函数内部再定义一个函数,并且这个内部函数用到了外部变量(即是外部函数的参数),最终这个函数返回内部函数的引用,这就是闭包. def decorator(p ...

  6. vue 读取ajax数据,详解vue 中使用 AJAX获取数据的方法

    在VUE开发时,数据可以使用jquery和vue-resource来获取数据.在获取数据时,一定需要给一个数据初始值. 看下例: new Vue({ el:'#app', data:{data:&qu ...

  7. 详解Vue中使用scope进行样式隔离

    一.父子组件设置scoped的各种情况 例如有下面两个父子组件模板 Parent.vue <template><div class="parent-box"> ...

  8. 一文详解Pytorch中的优化器Optimizer

    本文将结合源码与代码示例详细解析Optimizer的五大方法. 1. 前言 优化器主要用在模型训练阶段,用于更新模型中可学习的参数.torch.optim提供了多种优化器接口,比如Adam.RAdam ...

  9. python装饰器详解-python中的装饰器详解

    在了解装饰器的之前一定要先了解函数作为参数传递, 什么是函数内嵌,请参考我之前写的博客函数简介 因为在python里面,函数也是对象,也可以作为参数进行传递.python装饰器本质也是一种特殊函数,它 ...

最新文章

  1. mysql通过参数文件启动_mysql启动的时参数文件中的[mysql]下的参数没有生效
  2. jquery书写一个简易的二级联动
  3. (转载)你好,C++(7)第三部分 C++世界众生相 3.2.1 变量的定义与初始化
  4. Linux内核开发之将驱动程序添加到内核
  5. DFS算法走迷宫(python实现)
  6. Java实现自定义队列和树结构_Java数据结构之链表、栈、队列、树的实现方法示例...
  7. 关于Element学习笔记
  8. 金融工作用计算机吗,为什么计算机专业的人想转金融,而金融专业的想转计算机?...
  9. php 分布式数据库查询,分布式数据库
  10. java方法能不能继承方法_关于java:方法链接+继承不能很好地一起玩吗?
  11. 命令02-pandas命令
  12. hbase sqoop 实验_Hive/hbase/sqoop的基本使用教程~
  13. UVALive 2659+HUST 1017+ZOJ 3209+FZU 1686 (DLX
  14. 两个表里数组字段的映射关联(stuff ,charindex,for xml path)
  15. Java语言程序设计(基础篇)第十版 第一章复习题答案
  16. 51单片机三种烧录的方法介绍
  17. 开源物联网云平台 Thingsboard入门
  18. win10系统bat脚本自启动程序、修改壁纸、更换主题区分主副屏壁纸
  19. Master Plan for becoming a Software Architect : Roadmap of a Software Architect
  20. hive报错:Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask

热门文章

  1. 将电子版照片信息或者扫描件快速识别导出 OCR识别技术
  2. plotly入门(vue项目中)
  3. 编程的97件事——1、谨慎行事
  4. 【密码算法 之七】GCM 浅析
  5. python pymssql - pymssql模块官方文档的翻译
  6. javaScript 原型 和 原型链
  7. 3d游戏建模如何学习?资深大咖经验分享
  8. 以网游服务端的网络接入层设计为例,理解实时通信的技术挑战
  9. 教程:Yolo5训练自己的数据集以及安装教程
  10. 从程序员到CTO的Java技术路线图(我爱分享)