前端热门技术axios详细讲解(三)——拦截器

本文介绍了axios中的拦截器机制,包括请求和响应拦截器的添加方式,以及如何在发送请求前和接收响应后进行自定义处理。同时,文章详细阐述了如何移除已添加的拦截器,提供了示例代码帮助理解如何使用和管理axios拦截器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言:
前面两篇讲了 axios的基本用法,以及 axios取消异步请求的方法,本篇文章继续讲述一下axios中拦截器的使用。拦截器是用来拦截请求体或响应体的一种处理机制。

一、拦截器的执行时机是什么?如何添加拦截器?

.then.catch之前。

添加请求拦截器:
axios.interceptors.request.use(function (config) {
    // 在发送请求之前的设置,如:
    config.headers.test = 'I am only a header!';
    return config;
  }, function (error) {
    // 对请求错误的处理
    return Promise.reject(error);
  });


添加响应拦截器:
axios.interceptors.response.use(function (response) {
    // 返回任何 2xx 的状态码都会触发这个函数,对响应数据进行加工处理。
    return response;
  }, function (error) {
    // 非以 2xx 开头的状态码都会触发,响应错误的处理
    return Promise.reject(error);
  });

二、如何移除拦截器?

eject() 移除单个拦截器(传入拦截器的名字)。
代码如下:

const myInterceptor = axios.interceptors.request.use(function () {/*...*/});
// 移除
axios.interceptors.request.eject(myInterceptor);

clear() 清除所有拦截器:

const instance = axios.create();
instance.interceptors.request.use(function () {/*...*/});
// Removes interceptors from requests
instance.interceptors.request.clear();
instance.interceptors.response.use(function () {/*...*/});
// Removes interceptors from responses
instance.interceptors.response.clear(); 

也可以为自定义 axios 实例添加拦截器。

const instance = axios.create();
instance.interceptors.request.use(function () {/*...*/});

以上就是拦截器的基本用法啦,其中注释的地方帮助大家理解的,我们可以在那些地方添加自定义配置、处理等。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清颖~

您的鼓励让我们一起进步,加油!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值