【问题标题】:Https Request payload too large. Help me in understanding the conceptHttps 请求负载过大。帮助我理解这个概念
【发布时间】:2022-01-10 03:30:39
【问题描述】:

我正在尝试在 axios 请求正文中发送文件的 base64 字符串。文件大小约为 370KB。

我收到了请求负载太大的 413 错误。在互联网上做了一些研究后得知服务器正在限制请求大小。

到目前为止,我的理解很清楚。

现在我将其更改为 formData 并将该表单数据作为请求正文传递。而且我没有收到任何 413 错误。服务器巧妙地证明了我的要求。

那么 formData 和服务器之间发生了什么?

服务器正在 Nginx、Node、Express 上运行。

【问题讨论】:

    标签: javascript node.js nginx https


    【解决方案1】:

    默认情况下,axios 以 JSON 格式发送数据,并且在 Node.js 端 JSON 解析器的默认限制为 100KB。因此,您可以继续使用 formData 或增加 JSON 解析器选项的限制。

        app.use(json({
            limit: '20mb'
        }));
    

    但如果您打算经常发送大型内容,请考虑使用 formData 甚至以二进制形式发送内容。

    更新。对于 FormData,如果您通常会通过 multer 处理它,则默认情况下您将具有以下限制:

    Field size: 1048576 bytes
    File size: unlimited
    

    【讨论】:

    • 感谢您的回答。所以 Json 有限制,而 formData 没有限制。你说的对吗?
    • 在我的回答中查看更新
    猜你喜欢
    • 1970-01-01
    • 2015-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-27
    • 1970-01-01
    • 2013-05-08
    • 2018-02-11
    相关资源
    最近更新 更多