vue攔截器Vue.http.interceptors.push使用詳解
剛開始學(xué)vue,github上down了一個開源項目,看源代碼的時候看到了這個地方:
/** * @export * @param {any} request * @param {any} next * @returns */ import store from './vuex/store' // 全局錯誤處理,全局loading import { setLoading, setTip } from './vuex/actions/doc_actions' export default function (request, next) { if (request.tip !== false) { setLoading(store, true) } next((res) => { setLoading(store, false) let data = JSON.parse(res.data) if (res.status === 0) { setTip(store, { text: '網(wǎng)絡(luò)不給力,請稍后再試' }) } if (!data.success) { setTip(store, { text: data.error_msg }) } }) }
這是一個全局的攔截器。于是搜索vue攔截器的用法,下面這一篇寫的不錯:
在vue項目使用vue-resource的過程中,臨時增加了一個需求,需要在任何一個頁面任何一次http請求,增加對token過期的判斷,如果token已過期,需要跳轉(zhuǎn)至登錄頁面。如果要在每個頁面中的http請求操作中添加一次判斷,那么會是一個非常大的修改工作量。那么vue-resource是否存在一個對于任何一次請求響應(yīng)捕獲的的公共回調(diào)函數(shù)呢?答案是有的!
vue-resource的interceptors攔截器的作用正是解決此需求的妙方。在每次http的請求響應(yīng)之后,如果設(shè)置了攔截器如下,會優(yōu)先執(zhí)行攔截器函數(shù),獲取響應(yīng)體,然后才會決定是否把response返回給
then進(jìn)行接收。那么我們可以在這個攔截器里邊添加對響應(yīng)狀態(tài)碼的判斷,來決定是跳轉(zhuǎn)到登錄頁面還是留在當(dāng)前頁面繼續(xù)獲取數(shù)據(jù)。攔截器詳細(xì)介紹》》
下邊代碼添加在main.js中
Vue.http.interceptors.push((request, next) => { console.log(this)//此處this為請求所在頁面的Vue實例 // modify request request.method = 'POST';//在請求之前可以進(jìn)行一些預(yù)處理和配置 // continue to next interceptor next((response) => {//在響應(yīng)之后傳給then之前對response進(jìn)行修改和邏輯判斷。對于token時候已過期的判斷,就添加在此處,頁面中任何一次http請求都會先調(diào)用此處方法 response.body = '...'; return response; }); });
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue-cli中實現(xiàn)響應(yīng)式布局的方法
這篇文章主要介紹了vue-cli中實現(xiàn)響應(yīng)式布局的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03vue中element-ui組件默認(rèn)css樣式修改的四種方式
在前端項目中會運用各種組件,有時組件的默認(rèn)樣式并不是你項目中所需要的,你需要更改樣式,下面這篇文章主要給大家介紹了關(guān)于vue中element-ui組件默認(rèn)css樣式修改的四種方式,需要的朋友可以參考下2021-10-10Vue路由跳轉(zhuǎn)傳參或打開新頁面跳轉(zhuǎn)的方法總結(jié)
這篇文章主要給大家介紹了關(guān)于Vue路由跳轉(zhuǎn)傳參或打開新頁面跳轉(zhuǎn)的相關(guān)資料,在使用Vue.js開發(fā)單頁面應(yīng)用時常常會遇到路由跳轉(zhuǎn)傳參的需求,需要的朋友可以參考下2023-07-07Element通過v-for循環(huán)渲染的form表單校驗的實現(xiàn)
日常業(yè)務(wù)開發(fā)中,form表單校驗是一個很常見的問題,本文主要介紹了Element通過v-for循環(huán)渲染的form表單校驗的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04