在我们平常调用接口的时候,会使用到拦截器这个工具,大致有两种用法,请求拦截和响应拦截。

请求拦截

axios.interceptors.request.use((config)=>{return config
},(error)=>{return Promise.reject(error)
})

解析:请求拦截这个时候请求还没用发送出去,可以在config里面加一些东西,如在请求头里面携带token,此时还没有到达服务器,error关联的是请求错误返回的信息。举个例子,当你发送请求的时候,这个时候网络被中断,请求还没有到达服务器,但是报错了,这个使用会走error,通常也会进行返回一个Promise对象。

响应拦截

axios.interceptors.response.use((config)=>{return config
},(error)=>{return Promise.reject(error)
})

解析:此时的请求已经到达了服务器,但是还没有到达客户端,可以对config进行一些操作,例如

进行一层结构的解析,返回return  config.data,做一些统一错误处理,请求的时候只管成功,不管失败。error-------------它代表的是响应错误的返回值,如401,404,500的错误,权限不够,参数错误等一些列的错误:

代码

if(status===401){alert('权限不够')
}
else (status===404){alert('参数错误')
}
else{alert('其它错误')
}

token失效的处理

service.interceptors.response.use((response) => {// dosomething},(error) => {// ! 服务器响应失败时,干些事情: 导致响应失败的原因有很多,其中之一是 token 过期// 响应失败时的error(错误对象),它经过了axios的2层包装,服务器响应的真实数据在 error.response.data 中。// axios包装的提示信息是:error.message,与服务器响应的真实数据是两回事const realData = error.response.data/* 处理token失效---后端处理 */if (error.response && realData && realData.code === 233333) {// 以上三个条件全部满足时,才说明token超时// 1. 触发actions中的logout函数,清除无效token、当前用户信息store.dispatch('user/logout')// 2. 跳转到登录页面router.push({ path: '/login' })// 3. return 一个执行错误,用于终止当前的promise执行链return Promise.reject(error)} else {/*  如果token未失效,则是其他错误 */// 1. 提示错误信息Message.error(realData.message)// 2. return 一个执行错误return Promise.reject(error)}}
)

view:

分析:

在请求拦截的时候此时请求还没有到达服务器。

在响应拦截的时候响应还没到达客户端。

axios请求拦截和响应拦截相关推荐

  1. axios 最全 请求拦截器 响应拦截器 配置公共请求头 超时时间 以及get delete post put 四种请求传参方式

    axios 拦截器 请求拦截器 请求拦截器的作用是在请求发送前进行一些操作 例如在每个请求体里加上token,统一做了处理如果以后要改也非常容易 响应拦截器 响应拦截器的作用是在接收到响应后进行一些操 ...

  2. axios 请求拦截器响应拦截器

    一. 拦截器介绍 一般在使用axios时,会用到拦截器的功能,一般分为两种:请求拦截器.响应拦截器. 请求拦截器 在请求发送前进行必要操作处理,例如添加统一cookie.请求体加验证.设置请求头等,相 ...

  3. axios的请求拦截和响应拦截

    1.安装axios npm install axios --save 2.引入模块 在untils文件夹中创建request.js文件,引入axios模块 import axios from &quo ...

  4. axios拦截器(请求拦截和响应拦截)

    axios拦截器分为request请求拦截器和response响应拦截器. request请求拦截器:发送请求前统一处理,如:设置请求头headers等. response响应拦截器:有时候我们要根据 ...

  5. vue中axios请求拦截、响应拦截的配置

    1.在vue项目的 src/ 文件夹下新建一个文件夹为 plugins,然后在 plugins/ 下新建 axios.js 文件,写入如下代码 import axios from 'axios' im ...

  6. vue请求拦截器 响应拦截器

    import axios from "axios"; // 创建一个axios的appconst request = axios.create({baseURL:'http://1 ...

  7. axios请求封装(带拦截器)

    请求封装二(带拦截器) //请求 import service from '../utils/requst' export function hlserver(){return new Promise ...

  8. Vue中使用axios的响应拦截器处理请求失败的情况(处理token过期问题)以及 登录成功跳转回原来页面问题

    参考axios官方文档 // 响应拦截器 // Add a response interceptor request.interceptors.response.use(// 在2xx范围内的任何状态 ...

  9. axios拦截器_请求拦截器_响应拦截器---axios工作笔记010

    然后我们再去看看axios的,请求拦截器,和响应拦截器. 先说一下这个,拦截器的原理,其实就是 我们发送一个请求,这个请求在发出去之前,我们的请求拦截器,先去拦截一下,拦截的时候可以对请求数据做一些处 ...

最新文章

  1. 【从蛋壳到满天飞】JS 数据结构解析和算法实现-AVL树(一)
  2. 原创 | IJCAI 2020灭霸式拒稿,AI审稿是否更公平?
  3. Android系统开发和性能优化——查漏补缺【建议收藏】
  4. PHP 使用POST 获取不到部分数据问题
  5. linux运维入门第一周的学习部分命令!
  6. Angulary应用依赖里的zone.js
  7. 数据驱动精准化营销在大众点评的实践
  8. python基础知识学习笔记(2)
  9. python网站开发实例 flask_Python Web开发之——构建基于Flask框架的web后端项目
  10. 惠普企业级服务器型号,惠普企业级服务器HP rx8640
  11. 不用PS,也可以轻松组合漂亮的图片—135编辑器拼图教程
  12. HTML5高级之position(定位)
  13. 今天QQ被盗,异常情况调查与反思
  14. 解题:POI 2009 Lyz
  15. 详细地址通过正则抽取省市区
  16. MySQL数据库11——子查询语句
  17. 【吴恩达deeplearning.ai】3.2 特征点检测
  18. 青蛙过河(二分+并查集)
  19. CRC-CCITT 标准CRC16(1021) 算法校验类
  20. 富士康员工盗卖iPhone部件3年赚3亿;张朝阳称工作只为赚钱太low;国产统一操作系统 UOS 正全面适配 | EA周报...

热门文章

  1. 时间工具类(时间戳转换日期date,获取两个时间戳的日期)
  2. 洛古题解之P8480
  3. html设置请求方式为put,GET POST PUT等请求方式的区别
  4. EndNote(参考文献管理软件)官方正式版V20.1.0 | 含endnote安装教程
  5. python十以内加减法_python生成PDF文件20以内加减法,给上小学的宝宝
  6. 中兴ZTE4G网卡显示数据卡未连接 或者 USB-AT USB-log USB-Rndis黄色感叹号
  7. sql优化的15个小技巧
  8. 高速电机的特性及工作原理(深度总结)
  9. lisp 焊缝标注_德国图纸焊接符号
  10. 怎样查看笔记本电池损耗程度