前端axios請求攔截器封裝

import axios from 'axios';
import {message} from 'antd'
import codeMessage from "@/utils/status"  //自己封裝(存放狀態(tài)碼對應(yīng)msg)
import {getToken, removeToken} from '@/utils/token'  //自己封裝(存闻镶,取谍椅,刪token)
import baseInfo from '@/utils/baseInfo';  //自己封裝(根據(jù)環(huán)境來請求的url等)

let token=getToken();
let baseURL = baseInfo.baseURL();
let timeout = 20000;

const service = axios.create({
    baseURL:baseURL,
    timeout: timeout, 
})
//  request 攔截器
service.interceptors.request.use(
    config => {
        if (token) { 
            config.headers['Authorization'] = 'Bearer ' + `${token}`;   //給headers都掛載token       
        }else{
            message.error('請先登陸')
        }
        return config;
    },error => {
        return Promise.reject(error);
    })
//  response 攔截器
service.interceptors.response.use(
    response=>{
       if(response.status !== 200 ) {
            return message.success('返回數(shù)據(jù)失敗')
        }
        return Promise.resolve(response);
    },error => {
        if (error.response) {
            message.error(codeMessage[error.response.status])  //根據(jù)狀態(tài)碼返回對應(yīng)msg
        }
        return Promise.reject(error)
    })
export default service

跟后端協(xié)商接口的狀態(tài)碼過后將狀態(tài)碼及msg單獨封裝起來,以免在攔截器里寫一大堆if else導(dǎo)致代碼很亂同時也難以判斷完全界赔。

// status.js
const codeMessage = {
    200: '服務(wù)器成功返回請求的數(shù)據(jù)丢习。',
    201: '新建或修改數(shù)據(jù)成功。',
    202: '一個請求已經(jīng)進(jìn)入后臺排隊(異步任務(wù))淮悼。',
    204: '刪除數(shù)據(jù)成功咐低。',
    304: '已經(jīng)執(zhí)行了GET,但文件未變化',
    400: '發(fā)出的請求有錯誤袜腥,服務(wù)器沒有進(jìn)行新建或修改數(shù)據(jù)的操作见擦。',
    401: '用戶沒有權(quán)限(令牌、用戶名羹令、密碼錯誤)鲤屡。',
    402: '參數(shù)失敗',
    403: '用戶得到授權(quán),但是訪問是被禁止的福侈。',
    404: '發(fā)出的請求針對的是不存在的記錄酒来,服務(wù)器沒有進(jìn)行操作。',
    406: '請求的格式不可得肪凛。',
    410: '請求的資源被永久刪除堰汉,且不會再得到的。',
    422: '當(dāng)創(chuàng)建一個對象時伟墙,發(fā)生一個驗證錯誤翘鸭。',
    500: '服務(wù)器發(fā)生錯誤,請檢查服務(wù)器戳葵。',
    502: '網(wǎng)關(guān)錯誤矮固。',
    503: '服務(wù)不可用,服務(wù)器暫時過載或維護(hù)譬淳。',
    504: '網(wǎng)關(guān)超時',
};
export default codeMessage

注意
請求攔截在headers上掛載token存儲到本地

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末档址,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子邻梆,更是在濱河造成了極大的恐慌守伸,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件浦妄,死亡現(xiàn)場離奇詭異尼摹,居然都是意外死亡见芹,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門蠢涝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來玄呛,“玉大人,你說我怎么就攤上這事和二∨锹粒” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵惯吕,是天一觀的道長惕它。 經(jīng)常有香客問我,道長废登,這世上最難降的妖魔是什么淹魄? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮堡距,結(jié)果婚禮上甲锡,老公的妹妹穿的比我還像新娘。我一直安慰自己羽戒,他們只是感情好缤沦,可當(dāng)我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著半醉,像睡著了一般疚俱。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上缩多,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天呆奕,我揣著相機(jī)與錄音,去河邊找鬼衬吆。 笑死梁钾,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的逊抡。 我是一名探鬼主播姆泻,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼冒嫡!你這毒婦竟也來了拇勃?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤孝凌,失蹤者是張志新(化名)和其女友劉穎方咆,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蟀架,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡瓣赂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年榆骚,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片煌集。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡妓肢,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出苫纤,到底是詐尸還是另有隱情碉钠,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布方面,位于F島的核電站放钦,受9級特大地震影響色徘,放射性物質(zhì)發(fā)生泄漏恭金。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一褂策、第九天 我趴在偏房一處隱蔽的房頂上張望横腿。 院中可真熱鬧,春花似錦斤寂、人聲如沸耿焊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽罗侯。三九已至,卻和暖如春溪猿,著一層夾襖步出監(jiān)牢的瞬間钩杰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工诊县, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留讲弄,地道東北人。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓依痊,卻偏偏與公主長得像避除,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子胸嘁,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,713評論 2 354