修改Fetch API请求URL后出现400 BadRequest: Content-Length非数字问题求助
解决Fetch API修改URL后Chrome/Edge报Content-Length非数字400错误的思路
- 先查浏览器实际发送的请求头:打开Chrome开发者工具的Network面板,找到该请求,查看Request Headers里的Content-Length字段具体值——是空字符串、非数字内容还是其他异常?这能直接定位问题根源。
- 显式指定请求方法:哪怕原请求是默认的GET,也在Fetch配置里明确声明
method: 'GET'。Chrome/Edge在路径变更的场景下,可能错误推断请求方法,导致自动添加的Content-Length头异常。示例代码:
fetch('https://127.0.0.1:8080/endpoint/getCookie', { method: 'GET', headers: { 'Accept': 'application/json' } })
- 检查请求body处理:如果是POST请求,确保body不是
undefined或空值,要么不传body参数,要么设为null。部分场景下,Chrome会给无有效body的POST请求错误设置Content-Length。 - 排查服务器端路由配置:新路径
/endpoint/getCookie的处理逻辑可能和原路径不同——比如服务器端的body解析中间件对该路径校验更严格,或者路由配置错误导致请求被转发到了需要特定Content-Length的处理逻辑上。
内容的提问来源于stack exchange,提问作者Anon
相关产品推荐
相关产品推荐

