一、封装axios
在响应拦截器中处理超时
import router from '@/router'
import axios from 'axios'
import {
Message } from 'sec-ui'
const api = axios.create({
// baseURL: 'http://39.105.151.241:8081',
timeout: 5 * 1000 // request timeout
})
api.defaults.timeout = 5000
api.interceptors.request.use(config => {
// config.headers.Authorization = window.sessionStorage.getItem('tokense')
return config
}, err => {
Promise.reject(err)
})
// 响应拦截器
api.interceptors.response.use(res => {
// console.log(res, '响应')
const code = res.data.code
switch (code) {
case 401:
router.push({
path: '/'})
break
default:
break
}
return Promise.resolve(res.data)
}, err => {
// console.log(err, 'err')
if (err.message.includes('timeout')) {
Message({
message: '请求服务超时:传输超时',
type: 'error',
duration: 5 * 1000
})
} else {
if (err.response.status === 413) {
Message({
message: 'Request Entity Too Large',
type: 'error',
duration: 5 * 1000
})
} else {
Message({
message: err,
type: 'error',
duration: 5 * 1000
})
}
}
const res = ''
console.log('err' + err)
return res && Promise.reject(err)
})
export default api