第一,在項目的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中引入