欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

vue axios攔截原理

錢琪琛1年前8瀏覽0評論

axios是一個基于Promise的HTTP客戶端,可以使我們在瀏覽器和Node.js中發送請求。在Vue中,我們通常使用axios來請求數據。

但是,在請求數據的時候,我們經常需要在請求發送前和響應返回后進行一些操作,比如設置請求頭,根據響應狀態碼進行不同的處理等。這時候,就可以利用axios的攔截器對請求和響應進行攔截和處理。

攔截器是axios中用于攔截請求和響應的函數,每個攔截器分別接收一個入參config(請求配置對象)和response(響應對象),并且必須返回一個config或者Promise.resolve(config)(請求攔截器)或response或者Promise.resolve(response)(響應攔截器)。

// 全局設置請求頭
axios.interceptors.request.use(config =>{
config.headers.Authorization = 'Bearer ' + getToken()
return config
})
// 全局捕捉錯誤
axios.interceptors.response.use(response =>{
return response
}, error =>{
if (error.response.status === 401) {
router.push('/login')
}
return Promise.reject(error)
})

在上面的代碼中,我們為axios設置了兩個攔截器,一個用于設置請求頭,一個用于全局捕捉錯誤。請求攔截器在請求發送前執行,響應攔截器在響應返回后執行。

需要注意的是,每個axios實例也可以單獨設置自己的攔截器,當要對某些請求單獨設置時,這種方式會更加靈活。

const instance = axios.create({
baseURL: '/api'
})
instance.interceptors.request.use(config =>{
const token = window.localStorage.getItem('token')
if (token) {
config.headers.Authorization = 'Bearer ' + token
}
return config
})

上面的代碼中,我們創建一個axios實例,然后對它設置了一個請求攔截器,用來添加請求頭。

利用axios的攔截器,不僅可以方便地進行全局的請求處理、錯誤處理等等,也可以針對具體的請求進行特定的處理,增強了應用的可維護性和靈活性。