自定义Axios,进行请求拦截和响应处理操作
axios.js(与main.js 同级目录)
import axios from "axios";
import router from "./router";
import Element from "element-ui";
import store from './store/index'
//创建一个自定义的axios
const request = axios.create({
timeout: 5000,
headers: {
'Content-Type': "application/json; charset=utf-8"
}
})
request.interceptors.request.use(
config => {
config.headers['Authorization'] = store.state.token
return config
}
)
request.interceptors.response.use(
response => {
console.log("response -> " + JSON.stringify(response))
let res = response.data
if (res.code === 200) {
return response
} else {
Element.Message.error(!res.msg ? '系统异常' : res.msg)
return Promise.reject(res.msg)
}
},
error => {
console.log("error -> " + error)
//console.log("error.response -> " + JSON.stringify(error.response))
if (error.response.data) {
error.message = error.response.data.message
}
if (error.response.status === 401) {
router.push("/login")
}
Element.Message.error(error.message, {duration:10000})
return Promise.reject(error)
}
)
export default request