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

POST传递大体积数据时合法URL返回Error 404问题求助

携带3.5MB的PDF字段请求返回404,本质是请求体大小超出了服务端的POST请求上限,被服务端配置拦截导致(部分服务端不会返回标准的413载荷过大错误,而是直接返回404),可按以下步骤排查解决:

  • 调整PHP配置限制
    找到服务端的php.ini配置文件,修改如下参数:
; 单次POST请求最大允许值,需大于传输的PDF大小,这里设置10M即可满足需求
post_max_size = 10M
; 单个表单输入字段的最大长度限制,避免单字段超限
max_input_vars = 1000
; 保证PHP有足够内存处理大请求
memory_limit = 128M

修改完成后重启PHP服务(PHP-FPM或对应的Web服务进程)生效。

  • 调整Web服务配置
    如果使用Nginx作为Web服务器,在站点配置的server块或全局http块中添加/修改参数:
client_max_body_size 10M;

修改后重启Nginx生效。
如果使用Apache作为Web服务器,在httpd.conf中调整LimitRequestBody参数值为10485760(对应10MB),重启Apache生效。

  • 可选优化传输方式
    你当前传输的PDF是字符串格式,如果是base64编码的话会比原二进制文件大33%左右,可改用FormData传输二进制数据,降低请求体积的同时避免序列化编码问题,修改后的AJAX代码如下:
let formData = new FormData($("#formdatos")[0]);
// 如果PDF是你前端生成的,可先转成Blob对象再插入formData,不用存在隐藏字段里
// formData.append('PDF', pdfBlob, 'filename.pdf');
$.ajax({
    url: "../../../lib/pscover.php",
    type: "POST",
    data: formData,
    dataType: "json",
    cache: false,
    // 必须添加以下两个参数,避免jQuery错误处理FormData
    contentType: false,
    processData: false,
    success: function(response) {
        // 原有业务逻辑
    }
});
  • 额外排查项
    如果修改完以上配置仍报错,检查服务端是否部署了WAF、mod_security等安全防护模块,调整模块的POST请求体大小限制规则即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 23:54:01