最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue axios 封裝請求攔截多次彈窗的問題及解決

 更新時間:2024年08月30日 14:55:53   作者:Zero0985  
這篇文章主要介紹了vue axios 封裝請求攔截多次彈窗的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

問題

token過期或者失效后,彈窗提示用戶登陸失效,重新登陸。

在一些頁面中初始化時調了多個API,會出現多次彈出重新登陸的彈框

解決方案

1、使用axios中的CancelToken,在判斷登陸失敗時,取消后面的API請求。

2、跳轉路由,取消上一個頁面未請求成功的API。

實現方法

const myAxios = {
    install(Vue) {
        let http = axios.create({
            // baseURL: 'http://localhost:8088/hklms/app',
            // baseURL: process.env.BASE_API,
            timeout:1000,
            // transformRequest: [
            //     function (data){
            //         return qs.stringify(data, {
            //             indices: false
            //         })
            //     }
            // ]
            
        })
        http.interceptors.request.use(
            config => {
                config.cancelToken = new axios.CancelToken((cancel) => {
                    //使用vuex 定義pushCancel,請求進來存入
                    store.dispatch('user/pushCancel', {cancelToken:cancel})
                  });
                if (store.state.user.token) {
                    config.headers['token'] = store.state.user.token
                }
                return config
            },
            error => {
                console.log(error)
            }
        )
        http.interceptors.response.use(
            response => {
                const res = response.data;
                if(res.code && res.code === 401){
                    store.dispatch('user/clearCancel');
                    sessionStorage.clear()
                    Message.error(res.msg)
                    router.push("/login")
                    return Promise.reject(error);
                }else {
                    return response
                }
                
            },
            error => {
                return Promise.reject(error);
            }
            
        )

store中 user.js

state: {
axiosCancelArr:[],
}
mutations:{
	CLOSE_SIDEBAR: (state) => {
            state.opened = !state.opened
            if(state.opened){
                sessionStorage.setItem('sidebarStatus',1)
            }else {
                sessionStorage.setItem('sidebarStatus',0)
            }
            
        },
        PUSH_CANCEL(state, cancel){
            state.axiosCancelArr.push(cancel.cancelToken);
          },
      
          CLEAR_CANCEL(state){
            state.axiosCancelArr.forEach(e=>{
              e && e()
            });
            state.axiosCancelArr = []
        }
},
actions: {
	pushCancel({commit}, cancel){
            commit('PUSH_CANCEL', cancel)
     },
    clearCancel({commit}){
            commit('CLEAR_CANCEL');
    }
}

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • vue3+ts+vite使用el-table表格渲染記錄重復情況

    vue3+ts+vite使用el-table表格渲染記錄重復情況

    這篇文章主要給大家介紹了關于vue3+ts+vite使用el-table表格渲染記錄重復情況的相關資料,我們可以通過合并渲染、數據緩存或虛擬化等技術來減少重復渲染的次數,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-12-12
  • Vue混入使用和選項合并詳解

    Vue混入使用和選項合并詳解

    這篇文章主要介紹了Vue混入使用和選項合并,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-10-10
  • Vue中嵌入可浮動的第三方網頁窗口的示例詳解

    Vue中嵌入可浮動的第三方網頁窗口的示例詳解

    本文介紹了在Vue2項目中嵌入可浮動的第三方網頁窗口的實現方法,包括使用iframe、div+script和dialog元素等方式,并提供了一個實戰(zhàn)Demo,展示了如何在Vue組件中動態(tài)加載和控制浮窗的顯示,需要的朋友可以參考下
    2025-02-02
  • VUE2.0自定義指令與v-if沖突導致元素屬性修改錯位問題及解決方法

    VUE2.0自定義指令與v-if沖突導致元素屬性修改錯位問題及解決方法

    這篇文章主要介紹了VUE2.0自定義指令與v-if沖突導致元素屬性修改錯位問題及解決方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • Vue裝飾器中的vue-property-decorator?和?vux-class使用詳解

    Vue裝飾器中的vue-property-decorator?和?vux-class使用詳解

    這篇文章主要介紹了Vue裝飾器中的vue-property-decorator?和?vux-class使用詳解,通過示例代碼給大家介紹的非常詳細,對vue-property-decorator?和?vux-class的使用感興趣的朋友一起看看吧
    2022-08-08
  • vue3中setup語法糖下通用的分頁插件實例詳解

    vue3中setup語法糖下通用的分頁插件實例詳解

    這篇文章主要介紹了vue3中setup語法糖下通用的分頁插件,實例代碼介紹了自定義分頁插件:PagePlugin.vue,文中提到了vue3中setup語法糖下父子組件之間的通信,需要的朋友可以參考下
    2022-10-10
  • vue項目報錯Extra?semicolon?(semi)問題及解決

    vue項目報錯Extra?semicolon?(semi)問題及解決

    這篇文章主要介紹了vue項目報錯Extra?semicolon?(semi)問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • vue把輸入框的內容添加到頁面的實例講解

    vue把輸入框的內容添加到頁面的實例講解

    在本篇文章里小編給大家整理的是關于vue把輸入框的內容添加到頁面的實例以及相關知識點,需要的朋友們學習下。
    2019-11-11
  • Vue實現JSON字符串格式化編輯器組件功能

    Vue實現JSON字符串格式化編輯器組件功能

    這篇文章主要介紹了Vue實現JSON字符串格式化編輯器組件,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-01-01
  • Vue.js頁面驗證跳轉功能實現

    Vue.js頁面驗證跳轉功能實現

    這篇文章主要介紹了Vue.js頁面驗證跳轉功能實現,本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-04-04

最新評論

沐川县| 岳普湖县| 白玉县| 富裕县| 上饶市| 拜城县| 本溪市| 金华市| 辽宁省| 健康| 南皮县| 石首市| 武功县| 新竹市| 新干县| 化德县| 湟源县| 深州市| 剑川县| 遂川县| 安图县| 玛沁县| 新化县| 忻州市| 中方县| 朝阳县| 柳河县| 长顺县| 二连浩特市| 雷州市| 无棣县| 肇东市| 玉龙| 广河县| 射洪县| 晋城| 清新县| 济南市| 云南省| 邢台县| 盐亭县|