詳解axios全局路由攔截的設(shè)置方法
一個(gè)項(xiàng)目中如果http請(qǐng)求發(fā)生了錯(cuò)誤/異常,比如返回碼4xx(表示沒(méi)有授權(quán),登錄過(guò)期等),我們希望能夠在axios在第一時(shí)間就能攔截獲取到,然后直接提示報(bào)錯(cuò)的錯(cuò)誤信息,而不是在發(fā)起請(qǐng)求的地方,單獨(dú)去做判斷,這樣效率太低。
所以這個(gè)時(shí)候,axios全局路由攔截就登場(chǎng)了:
axios全局路由代碼通常是在構(gòu)建axios實(shí)例注入的,下面就是代碼模板:
const instance = axios.create({}) instance.interceptors.response.use( // 回調(diào)函數(shù)1: 入?yún)⑹钦?qǐng)求成功時(shí)的返回結(jié)果:response (response) => { // 請(qǐng)求正常時(shí)的代碼塊 return response }, // 回調(diào)函數(shù)2: 入?yún)⑹钦?qǐng)求失敗時(shí)的返回錯(cuò)誤: error (error ) => { // 請(qǐng)求發(fā)生錯(cuò)誤時(shí)的代碼塊。 } );
下面是一個(gè)應(yīng)用實(shí)例中的代碼:
import axios from "axios"; import { message } from "antd" import { useNavigate } from "react-router-dom"; const baseURL = "xxxxx" // 創(chuàng)建axios實(shí)例 const instance = axios.create({ baseURL, headers: { "Authorization": "xxxxxxxxx", }, }); const navigate = useNavigate(); // 設(shè)置axios全局路由攔截 instance.interceptors.response.use( (response) => { return response; }, (error ) => { if (!error.response) { message.error("網(wǎng)絡(luò)異常", 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"); } } } );
總結(jié):axios全局路由攔截的設(shè)置方法分為兩步:
1. 通過(guò) axios.create方法創(chuàng)建axios實(shí)例
2. 通過(guò)axios實(shí)例的interceptors.response.use方法創(chuàng)建攔截規(guī)則,這個(gè)方面里面有兩個(gè)回調(diào)函數(shù)
a. 回調(diào)函數(shù)1: 入?yún)⑹钦?qǐng)求成功時(shí)的返回結(jié)果:response
b. 回調(diào)函數(shù)2: 入?yún)⑹钦?qǐng)求失敗時(shí)的返回錯(cuò)誤: error
到此這篇關(guān)于axios全局路由攔截的設(shè)置方法的文章就介紹到這了,更多相關(guān)axios全局路由攔截內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue css 引入asstes中的圖片無(wú)法顯示的四種解決方法
這篇文章主要介紹了vue css 引入asstes中的圖片 無(wú)法顯示的幾種解決方案,本文給出了四種解決方法,每種方法給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03Vue2.0用 watch 觀察 prop 變化(不觸發(fā))
本篇文章主要介紹了Vue2.0用 watch 觀察 prop 變化(不觸發(fā)),非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-09-09解決vuex改變了state的值,但是頁(yè)面沒(méi)有更新的問(wèn)題
這篇文章主要介紹了解決vuex改變了state的值,但是頁(yè)面沒(méi)有更新的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11vue-cli系列之vue-cli-service整體架構(gòu)淺析
這篇文章主要介紹了vue-cli系列之vue-cli-service整體架構(gòu)淺析,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01vue3+ts出現(xiàn)白屏問(wèn)題的解決方法詳解
這篇文章主要為大家詳細(xì)介紹了vue3+ts出現(xiàn)白屏問(wèn)題的原因與解決方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-03-03快速解決vue-cli在ie9+中無(wú)效的問(wèn)題
今天小編就為大家分享一篇快速解決vue-cli在ie9+中無(wú)效的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09