# 登录问题排查指南 ## 🔍 问题诊断步骤 ### 步骤1: 检查后端服务是否运行 #### 方法1: 检查端口占用 ```bash netstat -ano | findstr :8001 ``` 如果看到类似输出,说明端口被占用: ``` TCP 0.0.0.0:8001 0.0.0.0:0 LISTENING 33764 ``` #### 方法2: 检查进程 ```bash tasklist | findstr 33764 ``` 如果是 `java.exe`,说明后端服务正在运行。 #### 方法3: 浏览器测试 在浏览器中访问: ``` http://localhost:8001/api/admin/login ``` 如果看到以下情况,说明后端服务正在运行: - 返回JSON错误(如405 Method Not Allowed)- **这是正常的**,因为这是GET请求,而登录接口需要POST - 页面空白或连接失败 - 说明后端服务未启动 ### 步骤2: 检查前端配置 1. **检查API地址配置** - 文件:`book/book-admin/src/main/resources/static/utils/api.js` - 应该设置为:`const BASE_URL = 'http://localhost:8001'` 2. **检查前端服务端口** - 文件:`book/book-admin/package.json` - 应该设置为:`-p 8002`(不能与后端端口8001冲突) ### 步骤3: 使用测试页面诊断 1. 启动前端服务: ```bash cd book/book-admin npm run dev ``` 2. 访问测试页面: ``` http://localhost:8002/pages/test-backend.html ``` 3. 点击测试按钮,查看详细错误信息 ## 🔧 常见问题及解决方案 ### 问题1: 后端服务未启动 **症状**: 浏览器显示"无法连接到后端服务" **解决方案**: 1. 打开IDE(如IntelliJ IDEA) 2. 找到 `BookApplication.java` 文件 3. 右键点击,选择"Run 'BookApplication.main()'" 4. 等待启动完成,看到类似日志: ``` Tomcat started on port(s): 8001 (http) ``` ### 问题2: 端口冲突 **症状**: 启动后端服务时提示端口被占用 **解决方案**: 1. 查找占用端口的进程: ```bash netstat -ano | findstr :8001 ``` 2. 结束进程(如果不是后端服务): ```bash taskkill /PID <进程ID> /F ``` 3. 或者修改后端端口(不推荐) ### 问题3: CORS跨域问题 **症状**: 浏览器控制台显示CORS错误 **解决方案**: 1. 检查 `AdminWebConfig.java` 中的CORS配置 2. 确保包含以下配置: ```java @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/api/**") .allowedOrigins("*") .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS") .allowedHeaders("*") .allowCredentials(false) .maxAge(3600); } ``` 3. 重启后端服务 ### 问题4: 数据库连接失败 **症状**: 后端启动失败,提示数据库连接错误 **解决方案**: 1. 检查MySQL服务是否启动 2. 检查 `application.properties` 中的数据库配置: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/books_db?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true spring.datasource.username=root spring.datasource.password=root ``` 3. 确保数据库 `books_db` 存在 4. 确保用户名和密码正确 ### 问题5: 管理员账号不存在 **症状**: 登录时提示"用户名或密码错误" **解决方案**: 1. 检查数据库中是否有管理员账号 2. 管理员账号要求: - `username`: admin - `password`: admin123(MD5加密后的值:0192023a7bbd73250516f069df18b500) - `role`: admin - `status`: 1(启用) 3. 如果不存在,需要创建管理员账号 ## ✅ 完整启动流程 ### 1. 启动MySQL数据库 确保MySQL服务正在运行 ### 2. 启动后端服务 ```bash cd book mvn spring-boot:run ``` 或者在IDE中运行 `BookApplication.java` ### 3. 启动前端服务 ```bash cd book/book-admin npm run dev ``` ### 4. 访问登录页面 ``` http://localhost:8002/pages/login.html ``` ### 5. 使用管理员账号登录 - 用户名:`admin` - 密码:`admin123` ## 🧪 测试连接 使用测试页面进行完整测试: ``` http://localhost:8002/pages/test-backend.html ``` 点击所有测试按钮,查看详细结果。 ## 📞 如果还是无法解决 请提供以下信息: 1. 后端服务启动日志(完整日志) 2. 浏览器控制台的错误信息(F12 -> Console) 3. 网络请求详情(F12 -> Network -> 点击登录请求 -> 查看Response) 4. 测试页面的测试结果