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;
            }
    })
  }
发布了7 篇原创文章 · 获赞 1 · 访问量 1146

猜你喜欢

转载自blog.csdn.net/u013934601/article/details/104216167
今日推荐