diff --git a/src/utils/request.js b/src/utils/request.js
new file mode 100644
index 0000000..536a3cc
--- /dev/null
+++ b/src/utils/request.js
@@ -0,0 +1,44 @@
+// src/utils/request.js
+import axios from 'axios'
+// import { getToken } from 'src/services/system/auth'
+import { message } from 'antd'
+
+// 创建axios实例
+const service = axios.create({
+  baseURL: process.env.REACT_APP_BASE_API, // api的base_url
+  timeout: 5000 // 请求超时时间
+})
+
+// request拦截器
+service.interceptors.request.use(
+  config => {
+    if (getToken()) {
+      config.headers['Authorization'] = 'Bearer ' + getToken()
+    }
+    return config
+  },
+  error => {
+    console.log(error)
+    Promise.reject(error)
+  }
+)
+
+// respone拦截器
+service.interceptors.response.use(
+  response => {
+    const res = response.data
+    if (res.code !== 200) {
+      message.error(res.msg || 'Error')
+      return Promise.reject(res)
+    } else {
+      return res
+    }
+  },
+  error => {
+    console.log('err' + error)
+    message.error(error.message)
+    return Promise.reject(error)
+  }
+)
+
+export default service
\ No newline at end of file
