详解axios全局路由拦截的设置方法
一个项目中如果http请求发生了错误/异常,比如返回码4xx(表示没有授权,登录过期等),我们希望能够在axios在第一时间就能拦截获取到,然后直接提示报错的错误信息,而不是在发起请求的地方,单独去做判断,这样效率太低。
所以这个时候,axios全局路由拦截就登场了:
axios全局路由代码通常是在构建axios实例注入的,下面就是代码模板:
const instance = axios.create({}) instance.interceptors.response.use( // 回调函数1: 入参是请求成功时的返回结果:response (response) => { // 请求正常时的代码块 return response }, // 回调函数2: 入参是请求失败时的返回错误: error (error ) => { // 请求发生错误时的代码块。 } );
下面是一个应用实例中的代码:
import axios from "axios"; import { message } from "antd" import { useNavigate } from "react-router-dom"; const baseURL = "xxxxx" // 创建axios实例 const instance = axios.create({ baseURL, headers: { "Authorization": "xxxxxxxxx", }, }); const navigate = useNavigate(); // 设置axios全局路由拦截 instance.interceptors.response.use( (response) => { return response; }, (error ) => { if (!error.response) { message.error("网络异常", 3); } else if ( error.response.status != 200) { console.log(error.response); error.response.data.err? message.error(error.response.data.err,3): null; navigate("/signin"); } } } );
总结:axios全局路由拦截的设置方法分为两步:
1. 通过 axios.create方法创建axios实例
2. 通过axios实例的interceptors.response.use方法创建拦截规则,这个方面里面有两个回调函数
a. 回调函数1: 入参是请求成功时的返回结果:response
b. 回调函数2: 入参是请求失败时的返回错误: error
到此这篇关于axios全局路由拦截的设置方法的文章就介绍到这了,更多相关axios全局路由拦截内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
el-form表单el-form-item验证规则里prop一次验证两个或多个值问题
这篇文章主要介绍了el-form表单el-form-item验证规则里prop一次验证两个或多个值问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-05-05Vue中使用vue2-perfect-scrollbar制作滚动条
这篇文章主要介绍了Vue中使用vue2-perfect-scrollbar滚动条,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-06-06vue3+element Plus实现在table中增加一条表单数据的示例代码
这篇文章主要介绍了vue3+element Plus实现在table中增加一条表单数据的操作,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧2024-01-01
最新评论