前端向后端传递数据时,后端显示获取到的数据为NULL,如何解决?
问题描述: 在使用若依分离版框架开发过程中,前端使用POST请求向后端传递数据,后端却接收到了NULL值。
前端代码:
//修改订单状态 export function updatorderstatus(id,status){ const data={ id, status } return request({ url:"/business/orderinfo/updatestate", method:"post", data:data }) }
前端请求数据截图: (此处应包含前端请求数据的截图)
后端代码 (原代码):
@ApiOperation("订单管理-修改订单状态") @ApiImplicitParams({ @ApiImplicitParam(name="id", value = "主键id", required = true, dataType = "integer"), @ApiImplicitParam(name="status", value = "状态0进行1结束", required = true, dataType = "integer") }) @PostMapping("/updatestate") public AjaxResult updateState(Integer id, Integer status) { System.out.println("更改订单编号:" id "\n"); System.out.println("更改订单状态:" status "\n"); // ... (其余代码) }
后端打印结果截图: (此处应包含后端打印结果的截图,显示id和status为null)
问题分析: 后端使用 Integer id, Integer status
接收参数,在处理POST请求时,Spring Boot 默认情况下无法正确解析请求体中的JSON数据到这些参数。
解决方案: 修改后端代码,使用 @RequestBody
注解将请求体中的JSON数据绑定到一个对象上。
修改后的后端代码:
@ApiOperation("订单管理-修改订单状态") @PostMapping("/updatestate") public AjaxResult updateState(@RequestBody OrderStatusDTO orderStatusDTO) { System.out.println("更改订单编号:" orderStatusDTO.getId() "\n"); System.out.println("更改订单状态:" orderStatusDTO.getStatus() "\n"); if (orderStatusDTO.getId() == null) { return AjaxResult.error("输入主键id"); } if (orderStatusDTO.getStatus() == null) { return AjaxResult.error("输入状态"); } BorderInfo borderInfo = new BorderInfo(); borderInfo.setId(orderStatusDTO.getId()); borderInfo.setStatus(orderStatusDTO.getStatus()); System.out.println("更改订单状态:" borderInfo.toString() "\n"); orderInfoService.update(borderInfo); return AjaxResult.success(); }
新增OrderStatusDTO类:
public class OrderStatusDTO { private Integer id; private Integer status; // getters and setters }
通过使用 @RequestBody
注解和创建一个 OrderStatusDTO
类来接收前端传递的JSON数据,后端就能正确解析数据,避免 NULL
值的问题。 请确保前端发送的JSON数据与 OrderStatusDTO
的字段名一致。 同时,检查前端的 request
函数是否正确设置了 headers
,例如 Content-Type: application/json
。
此方案比原先的@RequestParam
方案更符合RESTful API的设计规范,也更清晰地处理了POST请求的body数据。
以上是前端向后端传递数据时,后端显示获取到的数据为NULL,如何解决?的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

欧易 OKX 是全球领先的数字资产交易平台。1) 其发展历程包括:2017年上线,2021年启用中文名“欧易”,2022年更名为欧易 OKX。2) 核心服务包括:交易服务(币币、杠杆、合约、DEX、法币交易)和金融服务(余币宝、DeFi挖矿、借贷)。3) 平台特色功能有:行情数据服务和风控体系。4) 核心优势包括:技术实力、安全体系、服务支持和市场覆盖。

Redis缓存方案如何实现产品排行榜列表的需求?在开发过程中,我们常常需要处理排行榜的需求,例如展示一个�...

量子链(Qtum)交易流程包括前期准备、购买和出售三个阶段。1. 前期准备:选择合规交易所、注册账户、进行身份验证、设置钱包。2. 购买量子链:充值资金、寻找交易对、下单交易(市价单或限价单)、确认交易。3. 出售量子链:进入交易页面、选择交易对和下单类型(市价单或限价单)、确认交易和提现。

SpringBoot定时任务在多节点环境下的优化方案在开发Spring...

数字货币充值到账时间因方式不同而异:1. 银行转账通常需1-3个工作日;2. 信用卡或第三方支付平台充值在几分钟到几小时内;3. 数字货币转账根据区块链确认时间,通常10分钟到1小时,但可能因网络拥堵等因素延迟。

虚拟货币“最老”排行榜如下:1. 比特币(BTC),发行于2009年1月3日,是首个去中心化数字货币。2. 莱特币(LTC),发行于2011年10月7日,被称为“比特币的轻量版”。3. 瑞波币(XRP),发行于2011年,专为跨境支付设计。4. 狗狗币(DOGE),发行于2013年12月6日,基于莱特币代码的“迷因币”。5. 以太坊(ETH),发行于2015年7月30日,首个支持智能合约的平台。6. 泰达币(USDT),发行于2014年,是首个与美元1:1锚定的稳定币。7. 艾达币(ADA),发

2025年在杠杆交易、安全性和用户体验方面表现突出的平台有:1. OKX,适合高频交易者,提供最高100倍杠杆;2. Binance,适用于全球多币种交易者,提供125倍高杠杆;3. Gate.io,适合衍生品专业玩家,提供100倍杠杆;4. Bitget,适用于新手及社交化交易者,提供最高100倍杠杆;5. Kraken,适合稳健型投资者,提供5倍杠杆;6. Bybit,适用于山寨币探索者,提供20倍杠杆;7. KuCoin,适合低成本交易者,提供10倍杠杆;8. Bitfinex,适合资深玩

选择加密货币交易所的建议:1. 流动性需求,优先选择币安、Gate.io或OKX,因其订单深度与抗波动能力强。2. 合规与安全,Coinbase、Kraken、Gemini具备严格监管背书。3. 创新功能,KuCoin的软质押和Bybit的衍生品设计适合进阶用户。
