import axios from 'axios'
import {getToken, logoutSuccess, showErrorMsg as noti} from '@/utils/func'
import config from '@/config'
import i18n from "@/components/lang";
// ------- start -------------
let getBaseUrl = () => {
return config.apiHost
}
let showErrorMsg = (data) => {
noti(data.message, data.description)
}
// ------- end -------------
const myAxiosInstance = axios.create({
// timeout: 6000,
})
myAxiosInstance.interceptors.request.use(
requestConfig => {
requestConfig.baseURL = getBaseUrl()
let token = getToken()
if (token) {
requestConfig.headers['Xzd-Token'] = token;
}
//數(shù)據(jù)導(dǎo)出
if (requestConfig.data && requestConfig.data.exportExcel == true) {
requestConfig.responseType = 'blob'
}
// return requestConfig; 或 return Promise.resolve(requestConfig);
return Promise.resolve(requestConfig);
},
err => {
showErrorMsg({
message: i18n.t('message.title'),
description: i18n.t('message.requestError')
})
return Promise.reject(err);
}
)
myAxiosInstance.interceptors.response.use(
response => {
if (response.status < 500) {
let res = response.data;
let code = response.headers['xzd-code'] * 1
let msg = decodeURIComponent(response.headers['xzd-msg'] || '')
let fileName = response.headers['xzd-file-name'] || ''
switch (code) {
case 200:
if (response.config.data && fileName && response.config.data.includes('"exportExcel":true')) {
return response
} else {
return response.data
}
break;
case 201:
showErrorMsg({
message: i18n.t('message.title'),
description: msg || i18n.t('message.systemError'),
style: {
whiteSpace: "pre-wrap"
}
})
return Promise.reject(res)
break;
case 202:
showErrorMsg({
message: i18n.t('message.title'),
description: i18n.t('message.invalidToken')
})
logoutSuccess()
return Promise.reject(res)
break;
default:
showErrorMsg({
message: i18n.t('message.title'),
description: i18n.t('message.codeNotExists')
})
return Promise.reject(i18n.t('message.serverError'))
break;
}
} else {
showErrorMsg({
message: i18n.t('message.title'),
description: i18n.t('message.serverResponseError')
})
}
},
error => {
showErrorMsg({
message: i18n.t('message.title'),
description: i18n.t('message.serverResponseError')
})
return Promise.reject(error)
}
)
export default myAxiosInstance
// 封裝請求方法
import requset from '@/api/request.js'
export const getData = (data) => {
return requset({
url:'xxx/xxx',
methods:'POST/GET',
data
})
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。