axios的http拦截
// 引入axios以及element ui中的loading和message组件
import axios from 'axios'
import {
Loading,
Message
} from 'element-ui'
// 超时时间
axios.defaults.timeout = 5000
// http请求拦截器
var loadinginstace
axios.interceptors.request.use(config => {
// element ui Loading方法
loadinginstace = Loading.service({
fullscreen: true
})
return config
}, error => {
loadinginstace.close()
Message.error({
message: '加载超时'
})
return Promise.reject(error)
})
// http响应拦截器
axios.interceptors.response.use(data => { // 响应成功关闭loading
if (data.data.code == '004') {//如果状态码为004则是未登录,清除数据,跳转到登录页
loadinginstace.close()
sessionStorage.clear()
Router.push({path: '/login'})
return data
}else{
loadinginstace.close()
return data
}
}, error => {
loadinginstace.close()
Message.error({
message: '加载失败'
})
return Promise.reject(error)
})
export default axios