nebula/plugins/axios.js

53 lines
1.7 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import {Message} from 'element-ui'
const Cookie = process.client ? require('js-cookie') : undefined
export default function ({app, $axios, store, redirect}) {
$axios.onRequest(config => {
let token = store.state.oauth?.accessToken;
if (token) {
// if (!(config.url.indexOf('console') > -1 || config.url.indexOf('comments') > -1)) {
// }
config.headers['Authorization'] = token
}
})
$axios.onResponse(response => {
return new Promise((resolve, reject) => {
//返回数据逻辑处理 比如error_code错误处理
let message;
if (typeof (response.data.data) !== 'undefined') {
message = response.data.data.message
} else if (typeof (response.data) !== 'undefined') {
message = response.data.message
}
if (response.data.success) {
resolve(response.data);
} else {
if (response.data.code === 0) {
Message.error(message ? message : '服务异常')
} else if (response.data.code === 401) {
Cookie.remove('auth');
store.commit('setAuth', null);
} else if (response.data.code === 402) {
Cookie.remove('auth');
store.commit('setAuth', null);
} else if (response.data.code === 404) {
Message.error('操作失败,请稍后再试......')
} else if (response.data.code === 500) {
Message.error('服务器正在开小差,请稍后再试......')
} else {
Message.error(response.data.message);
}
}
reject(response);
})
});
$axios.onError(error => {
const code = parseInt(error.response && error.response.status)
if (code === 400) {
redirect('/400');
} else {
console.log(error.data);
}
})
}