|
@@ -1,7 +1,8 @@
|
|
|
import axios from 'axios';
|
|
|
+import { message } from 'antd';
|
|
|
import { api } from '../config/index';
|
|
|
|
|
|
-export const _axios = axios.create({
|
|
|
+const _axios = axios.create({
|
|
|
baseURL: api.url,
|
|
|
timeout: api.timeout,
|
|
|
headers: {
|
|
@@ -9,5 +10,43 @@ export const _axios = axios.create({
|
|
|
}
|
|
|
});
|
|
|
|
|
|
+// 拦截请求
|
|
|
+// 请求拦截器,用于显示加载提示
|
|
|
+_axios.interceptors.request.use(
|
|
|
+ config => {
|
|
|
+ // 显示加载提示(例如:加载中...)
|
|
|
+ message.loading('数据加载中...', 0); // duration设为0表示不会自动关闭
|
|
|
+ return config;
|
|
|
+ },
|
|
|
+ error => {
|
|
|
+ // 对请求错误进行处理,如显示错误提示
|
|
|
+ message.error('请求发送失败,请稍后再试');
|
|
|
+ return Promise.reject(error);
|
|
|
+ }
|
|
|
+ );
|
|
|
+
|
|
|
+ // 响应拦截器,用于处理请求结果并关闭加载提示
|
|
|
+ _axios.interceptors.response.use(
|
|
|
+ response => {
|
|
|
+ // 请求成功,关闭加载提示
|
|
|
+ message.destroy(); // 关闭之前创建的loading提示
|
|
|
+ return response;
|
|
|
+ },
|
|
|
+ error => {
|
|
|
+ // 请求失败,关闭加载提示并显示错误信息
|
|
|
+ message.destroy();
|
|
|
+ if (error.response) {
|
|
|
+ message.error(`请求失败:${error.response.status} ${error.response.statusText}`);
|
|
|
+ } else {
|
|
|
+ message.error('网络异常,请检查网络连接');
|
|
|
+ }
|
|
|
+ if(error.response.data) {
|
|
|
+ const { message, code } = error.response.data;
|
|
|
+ if(code !== 0) message.error(`请求失败:${code} ${message}`);
|
|
|
+ }
|
|
|
+ return Promise.reject(error);
|
|
|
+ }
|
|
|
+ );
|
|
|
+
|
|
|
|
|
|
-
|
|
|
+export default _axios;
|