Nuxtjs中的@nuxtjs/axios如何設置全局攔截器

Nuxtjs中的@nuxtjs/axios如何設置全局攔截器

nuxt.config.js 添加如下兩個配置

plugins: [
{src:’~/plugins/axios-plugin’}
],

modules: [
‘@nuxtjs/axios’,
],

注意

plugins中引入的axios-plugin.js相關代碼

// 相關代碼 親測有效

import axios from 'axios'
axios.defaults.withCredentials = true// 跨域處理 允許攜帶cookie
export default function ({ $axios, redirect }) {
	//正常請求返回處理
    $axios.onRequest(config => {
    })
    //錯誤請求返回處理
    $axios.onError(error => {
      const code = parseInt(error.response && error.response.status)
            switch (code) {
            	//錯誤代碼
                case 401:
                    sessionStorage.clear();
                    redirect('/login')
                    break;
                case 403:
                    sessionStorage.clear();
                    redirect('/login')
                    break;
                case 404:
                    sessionStorage.clear();
                    break;
                case 500:
                    Message.error("Server exception");
                    break;
                case 502:
                    Message.error("Bad Gateway");
                    break;
                case 503:
                    Message.error(error.message);
                    break;
                case 504:
                    Message.error(error.message);
                    break;
                default:
                    break;
            }
    })
  }
發佈了5 篇原創文章 · 獲贊 1 · 訪問量 796
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章