vue中 請求攔截 響應攔截設置


    第一,在項目的src中新建http.js文件,將以下代碼復制進去

import axios from 'axios'
import { Message, Loading } from 'element-ui';
import router from './router'

let loading        //定義loading變量

function startLoading() {    //使用Element loading-start 方法
    loading = Loading.service({
        lock: true,
        text: '加載中...',
        background: 'rgba(0, 0, 0, 0.7)'
    })
}
function endLoading() {    //使用Element loading-close 方法
    loading.close()
}

// 請求攔截  設置統一header
axios.interceptors.request.use(config => {
    // 加載
    startLoading()
    if (localStorage.eleToken)
        config.headers.Authorization = localStorage.eleToken
    return config
}, error => {
    return Promise.reject(error)
})

// 響應攔截  401 token過期處理
axios.interceptors.response.use(response => {
    endLoading()
    return response
}, error => {
    // 錯誤提醒
    endLoading()
    Message.error(error.response.data)

    const { status } = error.response
    if (status == 401) {
        Message.error('token值無效,請重新登錄')
        // 清除token
        localStorage.removeItem('eleToken')

        // 頁面跳轉
        router.push('/login')
    }

    return Promise.reject(error)
})

export default axios

  第二,在main.js中引入

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM