Spring Boot+React删除指定ID学生实体出现400错误排查
问题分析与解决
核心问题:请求URL未正确带入学生ID
你React代码里的请求URL写死成了"http://localhost:8080/student/delete/{id}",这里的{id}就是个普通字符串,不是要删除的学生实际ID。后端收到的请求路径是/student/delete/{id},根本识别不了这个路径,所以返回400错误。
修复方法
把React里的fetch URL改成模板字符串,用${id}动态替换成实际的学生ID:
const handleDelete = (id) => { fetch(`http://localhost:8080/student/delete/${id}`, { method: "DELETE", headers: {"Accept":"application/json", "Content-Type":"application/json"} }).then(() => { let updatedStudents = [...students].filter(i => i.id !== id); setStudents(updatedStudents); }); }
额外检查点
- 跨域问题:如果改完还是报错,给Spring Boot的控制器类加上
@CrossOrigin注解,因为前端(通常是3000端口)和后端(8080端口)属于不同域名,存在跨域访问限制。 - ID类型匹配:确认传入的
id是数字类型,和后端@PathVariable int id的类型一致,别传成字符串导致后端解析失败。 - 后端逻辑:检查
studentService.deleteStudentById(id)方法是否能正常连接数据库并执行删除操作,确保后端服务本身没有异常。
内容的提问来源于stack exchange,提问作者Emce650
相关产品推荐
相关产品推荐

