Axios 響應攔截器

1.定義:響應攔截器(Response Interceptor)是一個可以在 axios 接收到服務器響應后,響應數據交給 .then() 處理之前執行的函數。你可以用它來統一處理響應數據,進行錯誤處理,或者對返回的數據做格式化和轉換等操作。

2.怎么使用axios響應攔截器

axios 中,響應攔截器是通過 axios.interceptors.response.use() 方法來添加的,而響應攔截器默認有倆個參數

第一個參數:響應成功時的回調函數。

第二個參數:響應失敗時的回調函數(用來捕獲錯誤,如網絡錯誤、HTTP 錯誤等)。

成功回調函數

當請求成功并且響應狀態碼在 2xx 范圍內時,這個函數會被調用。你可以在這里對響應數據進行處理,比如統一格式化數據、檢查狀態碼等。

失敗回調函數

當請求失敗時(如網絡錯誤、服務器錯誤、響應狀態碼不在 2xx 范圍內等),失敗回調函數會被觸發。你可以在這里統一處理錯誤,比如顯示錯誤消息,重試請求,或者記錄日志等

axios.interceptors.response.use(function (response) {const result = response.datareturn result
}),//第一個參數,當請求成功的時候,調用該函數function (error) {if (error?.response?.status === 401) {alert('身份登錄失敗,請重新登陸')localStorage.clear()location.href = '../login/index.html'}return Promise.reject(error)
}//第二個參數,請求失敗調用,并且彈窗

在響應返回的數據中response是?axios?返回的響應對象包含了響應的所有信息。我們經常會從中獲取響應狀態碼來判斷響應是否成功。

3.?移除攔截器

如果不再需要某個攔截器,可以通過 eject 方法將其移除。這樣做的好處是可以靈活控制攔截器的生命周期,避免不必要的攔截操作。

// 獲取攔截器的 ID
const interceptorId = axiosInstance.interceptors.response.use(responseHandler, errorHandler);// 移除攔截器
axiosInstance.interceptors.response.eject(interceptorId);

這個移除方法有點像定時器的移除方法

4.常見應用場景

  1. 統一錯誤處理:在響應攔截器中統一處理 HTTP 錯誤,比如 404、500 錯誤,或者處理常見的業務錯誤。

  2. 響應數據格式化:比如你希望所有響應數據都以 { code, data, message } 的格式返回,響應攔截器可以幫助你進行格式化。

  3. Token 過期處理:在攔截器中檢查 401 Unauthorized 錯誤,當 token 過期時,你可以自動進行 token 刷新,或者引導用戶重新登錄。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/90685.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/90685.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/90685.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

k8s的nodeport和ingress

1.流量轉發圖targerport轉發到實際的容器端口containerPort(后端端口)nodeportingress2.配置場景總結字段作用對象必填示例值何時配置containerPort容器否80需明確記錄容器端口時(推薦)targetPortPod是80定義 Service 轉發規則時p…

VLA:自動駕駛的“新大腦”?

🔥 什么是 VLA?為什么突然火了?在自動駕駛圈子里,最近一個詞特別火:VLA。它不是某個新車的型號,也不是某家公司的新品牌,而是一種全新的智能架構,被稱為“自動駕駛的大腦2.0”。&…

Linux操作系統之線程(八):信號量sem

前言:大家好啊,我們上一篇文章已經講解了關于線程同步的一種辦法:運用條件變量cond。今天,我們就來學習一下線程同步的另外一種方法,信號量!!信號量呢有System V 信號量與POSIX 信號量&#xff…

【RocketMQ】一分鐘了解RocketMQ

MQ是什么 MQ全稱為Message Queue,即消息隊列 ,是一種提供消息隊列服務的中間件,也稱為消息中間件,是一套提供了消息生 產、存儲、消費全過程的軟件系統,遵循FIFO原則。 MQ的好處有哪些 異步解耦 最常見的一個場景是…

01 01 01 第一部分 C++編程知識 C++入門 第一個C++程序

第一部分 C編程知識第一章 C入門 —— 第一個C程序一、第一個C程序代碼展示//寫一個C程序&#xff0c;實現在屏幕上打印 “hello world” #include <iostream> using namespace std; int main() {cout << "hello world" << endl;return 0; }二、…

進制定義與轉換詳解

文章目錄&#x1f4d8; 進制定義與轉換詳解一、進制的含義二、常見進制介紹1. 十進制&#xff08;Decimal&#xff0c;Base-10&#xff09;2. 二進制&#xff08;Binary&#xff0c;Base-2&#xff09;3. 八進制&#xff08;Octal&#xff0c;Base-8&#xff09;4. 十六進制&am…

【安卓筆記】用MVC、MVP、MVVM來實現井字棋案例

0. 環境&#xff1a;電腦&#xff1a;Windows10Android Studio: 2024.3.2編程語言: JavaGradle version&#xff1a;8.11.1Compile Sdk Version&#xff1a;35Java 版本&#xff1a;Java111. 首先、簡單實現井字棋的功能。功能拆解&#xff1a;1. 棋盤為3x32. 點擊棋盤button&a…

【洛谷】單向鏈表、隊列安排、約瑟夫問題(list相關算法題)

文章目錄單向鏈表題目描述題目解析代碼隊列安排題目描述題目解析代碼約瑟夫問題題目描述題目解析代碼單向鏈表 題目描述 題目解析 這道題因為有大量的任意位置插入刪除&#xff0c;所以肯定不能用數組&#xff0c;用鏈表是最合適的&#xff0c;而在算法競賽通常都用靜態鏈表&a…

當人機交互邁向新紀元:腦機接口與AR/VR/MR的狂飆之路

從手機到 “頭盔”&#xff1a;交互終端的變革猜想??在當今數字化時代&#xff0c;智能手機無疑是我們生活中不可或缺的一部分。它集通訊、娛樂、辦公等多種功能于一身&#xff0c;成為了人們與外界交互的主要窗口。然而&#xff0c;隨著科技的飛速發展&#xff0c;智能手機作…

InfluxDB HTTP API 接口調用詳解(二)

實際應用案例演示 1. 數據寫入案例 假設在一個物聯網設備數據采集場景中&#xff0c;有多個傳感器設備持續采集環境的溫度和濕度數據。我們以 Python 語言為例&#xff0c;使用requests庫來調用 InfluxDB 的 Write 接口將數據寫入 InfluxDB。 首先&#xff0c;確保已經安裝了…

世運會線上知識競賽答題pk小程序怎么做

隨著2025年成都世界運動會的來臨&#xff0c;越來越多的企事業單位組織員工進行線上知識競賽&#xff0c;那么答題PK小程序該怎么做&#xff0c;接下來我們來一一分析&#xff1a; 世運會線上知識競賽答題pk小程序怎么做一、答題功能&#xff1a;支持多種題型&#xff0c;如選擇…

Java畢業設計 | 基于微信小程序的家校互動作業管理系統(Spring Boot+Vue.js+uni-app+AI,附源碼+文檔)

Java畢業設計 | 基于微信小程序的家校互動作業管理系統&#xff08;Spring BootVue.jsuni-app&#xff0c;附源碼文檔&#xff09;&#x1f3af; 畢業設計私人教練 專注計算機畢設輔導第 6 年&#xff0c;累計 1v1 帶飛 800 同學順利通關。從選題、開題、代碼、論文到答辯&…

CentOS8 使用 Docker 搭建 Jellyfin 家庭影音服務器

CentOS8 使用 Docker 搭建 Jellyfin 家庭影音服務器 一、前言 由于 Jellyfin 的 GPL 協議和 Intel 的 media-driver (iHD) Linux 驅動&#xff08;部分開源&#xff09;在協議上不兼容的緣故&#xff0c;Jellyfin 官方的 Docker 鏡像&#xff1a;jellyfin/jellyfin 并不包含 …

PyTorch武俠演義 第一卷:初入江湖 第4章:損失玉佩的評分風波

第一卷&#xff1a;初入江湖 第4章&#xff1a;損失玉佩的評分風波比武開幕 晨鐘響徹山谷&#xff0c;PyTorch派三年一度的"模型比武大會"正式開始。各分舵弟子列隊入場&#xff0c;林小碼跟在Tensor大師身后&#xff0c;眼睛瞪得溜圓——只見&#xff1a; "卷積…

HttpServletRequestWrapper存儲Request

HTTP請求的輸入流只能被讀取一次&#xff0c;再想獲取就獲取不到了&#xff0c;那有什么方法可以緩存呢&#xff0c;我們可以自定義一個HttpServletRequest&#xff0c;或者是想在請求參數中統一添加或刪除參數也可以使用此類進行改造&#xff0c;然后通過過濾器繼續向下流轉。…

算法:數組part02: 209. 長度最小的子數組 + 59.螺旋矩陣II + 代碼隨想錄補充58.區間和 + 44. 開發商購買土地

算法&#xff1a;數組part02: 209. 長度最小的子數組 59.螺旋矩陣II 代碼隨想錄補充58.區間和 44. 開發商購買土地 209. 長度最小的子數組題目&#xff1a;https://leetcode.cn/problems/minimum-size-subarray-sum/description/ 文章講解&#xff1a;https://programmercarl…

Spring 核心知識點梳理 1

目錄 Spring Spring是什么&#xff1f; Spring中重要的模塊 Spring中最重要的就是IOC(控制反轉)和AOP(面向切面編程) 什么是IOC DI和IOC之間的區別 為什么要使用IOC呢&#xff1f; IOC的實現機制 什么是AOP Aop的核心概念 AOP的環繞方式 AOP發生的時期 AOP和OOP的…

Kafka運維實戰 07 - kafka 三節點集群部署(混合模式)(KRaft 版本3.7.0)

目錄環境準備主機準備補充說明JDK安裝 (三臺主機分別執行)下載jdkjdk安裝kafka 部署(三臺主機分別執行)kafka 下載kafka 版本號結構解析kafka 安裝下載和解壓安裝包(3臺主機都執行)配置 server.properties &#xff08;KRaft 模式&#xff09;192.168.37.10192.168.37.11192.16…

linux內核與GNU之間的聯系和區別

要理解操作系統&#xff08;如 GNU/Linux&#xff09;的組成&#xff0c;需要明確 內核&#xff08;Kernel&#xff09; 和 GNU 工具鏈 各自的功能&#xff0c;以及它們如何協作構成完整的操作系統。以下是詳細分析&#xff1a;1. 內核&#xff08;Kernel&#xff09;的功能 內…

文件包含學習總結

目錄 漏洞簡介 漏洞原理 漏洞分類 漏洞防御 漏洞簡介 程序開發人員一般會把重復使用的函數寫到單個文件中&#xff0c;需要使用某個函數時直接調用此文件&#xff0c;而無需再次編寫&#xff0c;這種文件調用的過程一般被稱為文件包含。程序開發人員一般希望代碼更靈活&…