前后端登录注册连接成功

Change-Id: Ib5f9282fe7217b3363e542ce5c4e1c0d32619dcb
diff --git a/src/api/request.js b/src/api/request.js
new file mode 100644
index 0000000..dd5aade
--- /dev/null
+++ b/src/api/request.js
@@ -0,0 +1,76 @@
+import axios from 'axios'

+import { ElMessage } from 'element-plus'

+import router from '@/router'

+

+const request = axios.create({

+  // 关键:不要设置baseURL,或者设置为空字符串

+  // 这样请求会发送到当前域名(8080),然后被代理转发到8081

+  baseURL: '',

+  timeout: 10000,

+  headers: {

+    'Content-Type': 'application/json'

+  }

+})

+

+request.interceptors.request.use(

+  config => {

+    const token = localStorage.getItem('token')

+    if (token) {

+      config.headers.Authorization = `Bearer ${token}`

+    }

+    

+    console.log('🚀 发送请求:', config.method?.toUpperCase(), config.url)

+    console.log('📤 请求数据:', config.data)

+    

+    return config

+  },

+  error => {

+    console.error('❌ 请求错误:', error)

+    return Promise.reject(error)

+  }

+)

+

+request.interceptors.response.use(

+  response => {

+    console.log('✅ 响应成功:', response.status, response.data)

+    return response.data

+  },

+  error => {

+    console.error('❌ 响应错误:', error)

+    

+    if (error.response) {

+      const { status, data } = error.response

+      

+      switch (status) {

+        case 401:

+          localStorage.removeItem('token')

+          localStorage.removeItem('isLoggedIn') 

+          localStorage.removeItem('userInfo')

+          ElMessage.error('登录已过期,请重新登录')

+          router.push('/login')

+          break

+        case 403:

+          ElMessage.error('权限不足')

+          break

+        case 404:

+          ElMessage.error('API接口不存在')

+          console.error('❌ 请求的URL:', error.config.url)

+          break

+        case 500:

+          ElMessage.error('服务器内部错误')

+          break

+        default:

+          const errorMessage = data?.message || `请求失败 (${status})`

+          ElMessage.error(errorMessage)

+      }

+    } else if (error.request) {

+      ElMessage.error('无法连接到服务器,请检查网络')

+    } else {

+      ElMessage.error('请求配置错误')

+    }

+    

+    return Promise.reject(error)

+  }

+)

+

+export default request
\ No newline at end of file