日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > vue >内容正文

vue

vue项目中 axios请求拦截器与取消pending请求功能 - 年少、 - 博客园

發(fā)布時(shí)間:2023/12/10 vue 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vue项目中 axios请求拦截器与取消pending请求功能 - 年少、 - 博客园 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在開發(fā)vue項(xiàng)目中,請求是不可缺少的,在發(fā)送請求時(shí)常常需要統(tǒng)一處理一些請求頭參數(shù)等設(shè)置與響應(yīng)事件,這時(shí)利用請求攔截器再好不過。

這里以axios請求為例

實(shí)現(xiàn)了設(shè)置統(tǒng)一請求頭添加token, 其中token在登錄時(shí)被存入了localStorage中。

同時(shí)攔截器利用new cancelToken與定義的cancelPending方法實(shí)現(xiàn)了可以取消正在pending狀態(tài)的請求,什么情況會需要取消請求呢?

如下兩種情況:

1.?有一個(gè)局部分頁時(shí),用戶快速點(diǎn)擊第2頁,然后繼續(xù)點(diǎn)擊第3頁,如果網(wǎng)絡(luò)不太穩(wěn)定時(shí),第2頁的請求正在發(fā)送中,還未響應(yīng),但第3頁的請求先響應(yīng)了,過了一會第2?頁請求才響應(yīng),這時(shí)用戶處于第3頁,但看到的數(shù)據(jù)確是第2頁的,當(dāng)然有人會說可以在發(fā)送請求過程中禁用掉分頁按鈕點(diǎn)擊,但我感覺體驗(yàn)不太好,為何禁用呢,直接點(diǎn)擊第3頁時(shí)中斷掉之前相同的請求即可。

2.?切換路由時(shí),上一路由頁面中仍有未響應(yīng)的請求時(shí)切換了路由,應(yīng)該把正在pending的所有請求中斷取消掉。

?

下面是完整實(shí)現(xiàn)axios請求攔截器與取消pending請求功能的代碼

let pending = []; let cancelToken = axios.CancelToken; let cancelPending = (config) => { pending.forEach((item, index) => { if(!!config){ if(item.u == config.url){ item.f(); //取消請求 pending.splice(index, 1); //移除當(dāng)前請求記錄 }; }else{ item.f(); //取消請求 pending.splice(index, 1); //移除當(dāng)前請求記錄 } }); };//驗(yàn)證登錄狀態(tài) router.beforeEach((to, from, next) => { //如果是需要驗(yàn)證登錄狀態(tài)的頁面 if(to.matched.some(record => record.meta.requireAuth)){ let token = localStorage.getItem('token'); //如果已經(jīng)登錄,則正常進(jìn)入 if(!!token){ cancelPending(); next(); }else{ next({'name': 'login', 'query': {'redirect': to.fullPath}}); }; }else if(to.name == 'login'){ //如果是登錄頁,則驗(yàn)證如果當(dāng)前是登錄狀態(tài)自動跳轉(zhuǎn)至系統(tǒng)主頁,否則正常進(jìn)入登錄頁 let token = localStorage.getItem('token'); //如果已經(jīng)登錄,則重定向至系統(tǒng)首頁 if(!!token){ router.push({'name': 'SystemWelcome'}); }else{ next(); }; }else{ //其他頁面正常進(jìn)入 next(); }; });//axios 請求攔截器 axios.interceptors.request.use(config => { let token = localStorage.getItem('token'); if (!!token) { // 判斷是否存在token,如果存在的話,則每個(gè)http header都加上token config.headers.Authorization = `token ${token}`; }; cancelPending(config); config.cancelToken = new cancelToken((c) => { pending.push({'u': config.url, 'f': c}); }); return config; }, err => { return Promise.reject(err); }); //響應(yīng)攔截器 axios.interceptors.response.use(response => { cancelPending(response.config); return response; }, error => { if (error.response) { switch (error.response.status) { case 401: // 返回 401 清除token信息并跳轉(zhuǎn)到登錄頁面 localStorage.removeItem('token'); router.push({'name': 'login', 'query': {'redirect': router.currentRoute.fullPath}}); } } return {data: {}}; // 返回接口返回的錯(cuò)誤信息(這里返回空對象是為了避免控制臺報(bào)錯(cuò)) });

總結(jié)

以上是生活随笔為你收集整理的vue项目中 axios请求拦截器与取消pending请求功能 - 年少、 - 博客园的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久免费一级suv好看的国产 | 97播播| 国产一区免费看 | 黄色网址最新 | 成人午夜免费观看 | 中文字幕3页 | 黑人大群体交免费视频 | 精品91久久久久久 | 特级西西444www大精品视频 | 亚洲欧美少妇 | 亚洲色图国产精品 | 五月婷婷网站 | ktv做爰视频一区二区 | 91欧美激情一区二区三区 | 六月婷婷在线观看 | 男人网站在线观看 | 亚洲欧美一区二区三区 | 不卡av免费观看 | 影音先锋男人资源网站 | 艳妇乳肉豪妇荡乳av无码福利 | 男女天堂av | 最新永久地址 | 欧美性猛交久久久久 | 国产内射合集颜射 | 国产一二三四在线 | 国产精品成人网 | av片免费在线 | 成人精品影院 | 9i在线看片成人免费 | 91麻豆精品国产午夜天堂 | 欧美日韩电影一区 | 国产成人福利视频 | 91视频综合 | 中文字幕首页 | 日日麻批免费视频播放 | 国产嫩草影院久久久久 | 波多野结衣www | 免费黄色高清视频 | 狠狠干亚洲色图 | 国产精品爱啪在线线免费观看 | 欧洲丰满少妇做爰 | 亚洲视频国产精品 | 亚洲不卡视频在线 | 亚州av一区二区 | 18视频在线观看网站 | 欧美三日本三级少妇三99 | 18男女无套免费视频 | 伊人春色在线视频 | 麻豆国产精品视频 | 特级a级片 | 美女扒开屁股让男人桶 | 中出精品 | 人善交videos欧美3d动漫 | av二区在线 | 91视频二区 | av一级| 抖音视频在线观看 | 中文字幕一区二区三区人妻不卡 | 狠狠干女人| 福利第一页 | 欧美日韩综合一区二区三区 | 免费成人在线视频观看 | 欧美 日韩 国产 亚洲 色 | 国产一区二区网址 | 在线播放av片 | 国产视频一区二区三区在线观看 | 欧美一区在线视频 | 岛国成人在线 | 久久免费精品国产 | 黄色网页在线观看 | 国产欧美日韩在线观看 | 欧美一级特黄视频 | 美女天天干 | 超碰在线 | 日韩高清免费观看 | 成人午夜免费毛片 | 欧美大片免费观看网址 | 麻豆免费在线播放 | 国精产品一区二区三区 | 尤物国产在线 | 天堂av在线免费观看 | 亚洲第一页色 | 欧美中文视频 | 久久色在线观看 | 熟妇人妻系列aⅴ无码专区友真希 | 四虎8848 | 日韩av男人的天堂 | 久久精品a亚洲国产v高清不卡 | 中文字幕3 | 亚洲精品1区2区 | 日韩精品1区2区3区 欧美一本 | 性生交大片免费看视频 | 456av| 少妇高潮伦 | 黄色特级毛片 | 欧美绿帽合集xxxxx | www.久色| 国产精欧美一区二区三区蓝颜男同 | 美女扒开内看个够网站 |