import axios from 'axios'
import router from '@/router'
import { ElMessage } from 'element-plus'
// create an axios instance
const service = axios.create({
baseURL: process.env.VUE_APP_URL,
timeout: 600000, // request timeout
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
transformResponse: [
function (data: any) {
try {
data = JSON.parse(data)
return data
} catch (e) {
return data
}
}
],
transformRequest: [
(data: any, headers: any): string => {
headers.common.Authorization = localStorage.getItem('token')
if (headers['Content-Type'] === 'multipart/form-data') {
return data
}
return JSON.stringify(data)
}
]
})
service.interceptors.request.use(
(config) => {
return config
},
(err) => {
return Promise.reject(err)
}
)
service.interceptors.response.use(
(response) => {
const data = response.data
if (data.code === 200) {
return data
} else if (data.code === 1010005 || data.code === 523) {
const route = router.currentRoute.value
if (!route.path.includes('/login')) {
// token过期
window.localStorage.clear()
window.sessionStorage.clear()
// 执行login
}
return Promise.reject(data)
} else {
ElMessage({
type: 'error',
message: data.msg || data.message || data,
duration: 3000
})
return Promise.reject(data)
}
},
(error) => {
ElMessage({
type: 'error',
message: error.message || error.msg,
duration: 3000
})
return Promise.reject(error)
}
)
export default service
axios封装
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...