POST http://localhost:8080/xxx/ 400(Bad Request)

在内容分类管理页面遇到无法删除旧节点的问题,错误提示为POST http://localhost:8080/xxx 400(Bad Request)。分析发现是因为前台向后台传递删除所需数据不完整。解决方案是在异步Tree的pojo中添加parentId属性,并在显示时设置,确保删除操作能接收到完整的id和parentId,从而成功执行删除。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

在内容分类管理页面,只能删除新添加的节点,而不能删除以前添加的节点。
浏览器显示的错误是:POST http://localhost:8080/xxx 400(Bad Request)
在这里插入图片描述

问题分析

通过网上查询,发现这个错误是由于前台向后台传数据传不完整造成的。

删除时,前台需要向后台传两个值:待删除节点的 id:id 和该节点的父节点id:parentId。
在这里插入图片描述
先看添加操作的代码:
在这里插入图片描述
在添加的时候,Service 层创建了一个新的pojo对象contentCategory,把它插到数据库中,然后传给 Controller层。
在这里插入图片描述
Controller把这个数据以json的形式传递给了前台,然后前台通过调用 getContentCatList 这个方法就可以显示。

在删除的时候,前台需要传给后台两个数据:要删除的这个节点的 id 和 这个节点父节点的id,parentId。由于我们是新添加的节点,在添加的时候设定了父节点id:

contentCategory.setParentId(parentId);

而该节点id是自增长的,不用我们设置,后台往前台传的时候就用这两个值。

所以,我们在删除时候,前台可以把这两个值传给后台,后台能得到这两个数据,因此可以正常删除。

那为什么以前添加的数据就不能删除了呢?或者插入节点后,重启浏览器就不可以删除了呢?

打开浏览器,首先会调用 getContentCatList 显示方法,显示数据库中的数据。我们需要返回给前台异步Tree对应的json数据。EUTreeNode 就是异步 Tree 对应的 json 格式的pojo。
在这里插入图片描述
这时候,只传给了前台当前节点的id值,而没有传parentId值。这样,我们在删除的时候,前台就没办法传递给我们需要的这两个值,因此显示出了上面的错误。

解决方法

在 EUTreeNode 这个 pojo 中添加 parentId 这个属性。
在这里插入图片描述
然后在显示的时候,设置当前节点的 parentId 值:
在这里插入图片描述
这样,在显示的时候,我们后台就把 id 和 parentId 两个值都传给前端了。(只不过前端需要显示异步Tree的形式,只需解析id,state,text三个属性)

接着进行删除,前端就可以正常传递给我们需要的 id 和 parentId 了,即可进行正常删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值