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;
}
})
}