前后端登录注册连接成功
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