src/plugins/axios.js
import axios from 'axios';
import { Message } from 'element-ui';
import router from '../router';
// 跨域
axios.defaults.withCredentials = true
// 创建axios实例
const instance = axios.create({
//请求根路径
baseURL: 'http://127.0.0.1:8888/api/private/v1/',
timeout: 5000,
})
// request 请求拦截器
instance.interceptors.request.use(
config=>{
// 设置header
config.headers["Content-Type"] = "application/x-www-form-urlencoded";
config.headers["Content-Type"] = "application/json; charset=UTF-8";
// 让每一个请求携带自定义token
if (sessionStorage.getItem("token")) {
// header添加token
config.headers["Authorization"] = sessionStorage.getItem("token")
}
return config;
},
error => {
return Promise.reject(error);
}
);
// response 响应拦截器
instance.interceptors.response.use(
response => {
return response;
},
error => {
// 错误信息提示
if (error.response.status == 400) {
Message({
message: "参数信息有误",
center: true
});
return;
} else if (error.response.status == 401) {
Message({
message: "请重新登陆",
center: true
});
router.push("/login");
return;
} else if (error.response.status == 404) {
Message({
message: "用户不存在",
center: true
});
return;
} else if (error.response.status == 500) {
Message({
message: "服务器内部错误",
center: true
});
return;
} else if (error.response.status == 560) {
Message({
message: "数据库异常",
center: true
});
return;
}
// debug 模式下打印异常
console.log("err"+ error);
Message({
message: error.message,
type: "error",
duration: 5 * 1000
});
return Promise.reject(error);
}
);
// 导出 axios实例
export default instance