字段过长 导致后端拿不到数据

文章描述了项目中前端发送大量json数据到后端时遇到的问题,由于数据过大超出中间件请求长度限制,导致后端接收为空。解决方法是通过修改Tomcat的server.xml文件,增加maxHttpHeaderSize和maxPostSize配置。

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

字段过长 导致后端拿不到数据

最近项目上遇到一个奇怪的问题
前端传数据到后端 实际有数据但传不到后端
在这里插入图片描述

原因:

经检查数据为很长的json格式的字符串数据,数据量太大超过中间件请求长度限制被拦截导致后台拿到的数据都是空

解决:

在tomcat的server.xml文件中配置
maxHttpHeaderSize=“10000000”
maxPostSize=“10000000”

### 解决Axios请求时后端返回'msg':'缺少字段'的问题 当遇到使用 Axios 发起请求而收到后台响应 `msg`: `'缺少字段'` 的错误提示时,这通常意味着发送给服务器的数据符合预期。为了确保数据能够被正确接收并处理,在构建请求时需要注意几个方面。 #### 1. 设置正确的 Content-Type 和 数据格式 如果后端期望接收到 JSON 格式的参数,则应确保在发起请求前已将对象转换成字符串形式,并指定合适的 `Content-Type` 头部信息: ```javascript axios.put('/api/data', JSON.stringify({ key: value, }), { headers: { 'Content-Type': 'application/json', 'Test-Cors': 'abc' } }); ``` 对于非JSON类型的提交方式(如表单编码),则需调整相应的头部声明[^1]。 #### 2. 预检请求 (Preflight Request) 由于PUT属于非简单请求,浏览器会先发出一个 OPTIONS 请求作为预检来确认实际请求的安全性和合法性。因此,服务端除了要支持目标资源上的 PUT 方法外,还需要正确配置 CORS 策略以允许此类操作以及特定的自定义头部 `Test-Cors`: - 对于所有涉及跨域资源共享(CORS)场景下的非简单请求,都可能触发预检流程; - 后台应当针对 `/api/data` 路径开放对 PUT 方法的支持,并接受来自任意源(`Access-Control-Allow-Origin`) 或者具体域名列表中的访问尝试; - 明确列出可使用的 HTTP 动词 (`Access-Control-Allow-Methods`); - 如果存在额外的自定义头部,则应在响应头中通过 `Access-Control-Allow-Headers` 字段指明这些头部名[^3]。 #### 3. 参数验证逻辑 最后还需检查服务器端是否存在严格的输入校验机制,即是否因为某些必填项为空而导致报错。此时建议查看具体的业务需求文档或联系API提供方了解更详尽的信息关于哪些字段是必要的及其格式要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值