You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vercel拦截小于4.5MB的请求,为何实际有效负载上限仅约150KB?

问题:Vercel部署的Express接口触发413负载过大错误(远低于官方4.5MB限制)

Vercel官方说明:Serverless Function的请求体或响应体的最大有效负载大小为4.5MB。若Serverless Function收到超过该限制的有效负载,将返回错误413: FUNCTION_PAYLOAD_TOO_LARGE。

  • 在Vercel部署Express.js接口,发送约900KB的Base64文本请求体时触发413错误
  • 实际测试发现仅能正常发送约150KB的负载,远低于官方给出的4.5MB上限

可能的原因及解决办法

1. Express Body Parser默认限制(最常见原因)

Express框架自带的express.json()中间件默认有100KB的请求体大小限制,这个限制会优先于Vercel的Serverless Function限制生效,导致你发送超过100KB的请求就被拦截。

解决方法:配置express.json()时手动指定更大的限制值(建议设为比4.5MB略大的数值):

// 配置JSON请求体的大小限制
app.use(express.json({ limit: '5mb' }));

// 如果同时使用urlencoded格式,也要同步配置
app.use(express.urlencoded({ extended: true, limit: '5mb' }));

2. Base64编码的体积计算误区

Base64编码会让原始二进制数据体积膨胀约33%(每3字节原始数据转成4字节Base64字符),但900KB的Base64对应的原始数据约为677KB,远低于4.5MB上限,所以这个不是触发413的主因,但需要确认你是否误将原始数据大小当成了请求体总大小。

3. 额外的请求内容开销

如果你的请求体是包含Base64字符串的JSON对象(比如{"content": "base64文本"}),请求体总大小会包含JSON结构的字符开销,但这点增量不足以触发413,还是优先检查Body Parser的配置。

4. Vercel边缘层临时限制(少见)

若以上配置都正确仍出现问题,可尝试重新部署项目,或检查Vercel控制台是否有临时的服务限制提示。

内容的提问来源于stack exchange,提问作者Shiawase

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 15:05:29