1,导入axios element-ui nprogress
import axios from "axios";
import { Message } from "element-ui";
import NProgress from "nprogress";
import 'nprogress/nprogress.css'
NProgress.configure({ showSpinner: false })
2,创建axios实例
const request = axios.create({
baseURL: 'http://dida100.com:8888',///请求的基础地址(如果请求的地址省略了域名,就使用该域名)
timeout: 5000,//请求时间5秒
})
3,请求拦截
request.interceptors.request.use(function (config) {
//显示加载提示
NProgress.start();
//添加token
config.headers.Authorization = "Bearer " + localStorage.getItem("token");
return config;
})
4,拦截响应
request.interceptors.response.use(
function (response) {
//移除加载提示
NProgress.done();
//如果code为1报错
if(response.data.code===1){
Message({
message: response.data.msg,
type: 'warning'
});
}
//返回成功的数据
Promise.resolve(response);
return response;
},
function (err) {
//移除加载提示
NProgress.done();
if(err.response.status==401){
Message({
message: '当前用户状态没有权限,请先登录',
type: 'warning'
});
}else if(err.response.status==404){
Message({
message: '请求地址找不到',
type: 'warning'
});
}else if(err.response.status==500||err.response.status==505){
Message({
message: '服务器正忙',
type: 'warning'
});
}else if(err.response.status==0){
Message({
message: '当前离线状态,请检查网络',
type: 'warning'
});
}else{
Message({
message: '网络请求发送错误',
type: 'warning'
});
}
//返回错误
Promise.reject(err)
}
)
5,导出request
export default request;