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

Firefox下含文件的FormData请求偶发无响应问题排查求助

问题描述

某网站通过XMLHttpRequest和FormData对象向服务器发送带文件的请求,多数情况正常,但偶尔会出现无服务器响应、无响应头、无返回内容的情况。网络监控仅能看到请求头,无法获取HTTP错误码;多次重试请求可成功。

该问题仅出现在Firefox 101、102、103.0b7版本,Firefox 97、100、101便携版无此问题;Vivaldi 5.3.2679.68和Edge 103.0.1264.49也无问题。

日志信息

  • FPM访问日志显示:error 500
  • Apache访问日志显示:error 400
  • Apache错误日志显示:proxy_fcgi:error (103) Software connection abort: [client IP-Address:port] AH01075: Error dispatching request to : (reading input brigade), referer : sender-url(已替换真实IP-Address:port和sender-url)

服务器配置

$> php -v
PHP 7.4.28 (cli) (built: Feb 17 2022 16:17:19) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.28, Copyright (c), by Zend Technologies

$> apache2 -v
Server version: Apache/2.4.53 (Debian)
Server built:   2022-03-14T16:28:35

编辑补充:Firefox 104及后续版本该问题已解决,103版本仍存在此bug。

可排查的方向
  • 抓包对比异常与正常请求:用Wireshark或浏览器网络面板,查看两类请求的Content-Length、Transfer-Encoding等头部,确认Firefox异常版本是否存在报文截断、头部参数异常的情况。
  • 调整Apache与PHP-FPM的连接参数:修改php-fpm.conf的pm.max_children、pm.process_idle_timeout,或Apache的ProxyTimeout、Timeout值,排查是否因连接超时、进程资源不足导致请求中断。
  • 校验前端FormData构建逻辑:检查代码中是否在文件添加后、发送请求前存在异步操作,导致FormData状态异常;针对Firefox特定版本测试,确认是否存在文件流未完全写入就发送请求的情况。
  • 测试不同文件场景:验证问题是否集中在特定大小(接近upload_max_filesize限制)或类型的文件上,排查Firefox在大文件分块上传时的逻辑错误。
  • 查看PHP-FPM详细错误日志:除访问日志的500错误,检查php-fpm.log是否有内存溢出、文件写入失败等细节,确认后端是否因请求异常崩溃。
  • 调整Apache的mod_proxy_fcgi配置:检查ProxyFCGIBackendType、ProxyFCGISetEnvIf等参数,确保请求头正确传递到PHP-FPM。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 09:24:20