React+Spring Boot注册接口无法访问,PostgreSQL未接收数据排查
排查与解决步骤
1. 确认请求地址是否正确
前端的REGISTER_URL如果仅为'/register',会默认发送到前端服务端口(如3000),而非Spring Boot后端的默认端口(通常是8080)。需将请求地址修改为完整路径:
const REGISTER_URL = 'http://localhost:8080/register';
或通过Axios全局配置baseURL简化请求:
axios.defaults.baseURL = 'http://localhost:8080';
2. 修正请求体字段名匹配问题
前端提交的{user, pwd}对应字段名为user和pwd,但后端实体类Registration的字段是username和password,字段名不匹配会导致Spring无法正确解析请求体。修改前端请求体:
const response = await axios.post(REGISTER_URL, {username: user, password: pwd}, // 移除不必要的JSON.stringify,Axios会自动序列化对象 { headers: { 'Content-Type': 'application/json'}, withCredentials: true });
3. 完善跨域配置
前端请求设置了withCredentials: true,但后端@CrossOrigin未开启凭证支持,浏览器会因跨域策略拦截请求。修改后端Controller注解:
@CrossOrigin(origins = "http://localhost:3000", allowCredentials = true) @RestController public class RegistrationController { // 原有代码保持不变 }
4. 检查后端日志级别
确保后端日志配置允许输出INFO级内容。在application.properties中添加:
# 替换为你的Controller所在包路径 logging.level.com.yourpackage.RegistrationController=INFO
若日志级别高于INFO(如WARN或ERROR),logger.info的内容不会显示在控制台。
5. 查看前端请求状态
打开浏览器开发者工具→Network标签,检查注册请求的状态码:
- 404:请求地址错误,确认后端端口和路径是否正确
- 400:请求格式错误,核对请求体字段名与后端实体是否匹配
- 403:跨域权限问题,检查
@CrossOrigin配置 - 无请求记录:前端
handleSubmit未触发,排查表单提交逻辑或按钮绑定
内容的提问来源于stack exchange,提问作者daronoh
相关产品推荐
相关产品推荐

