首页  >  文章  >  后端开发  >  为什么即使 PHP 限制很高,我的 AJAX POST 数据仍然有限?

为什么即使 PHP 限制很高,我的 AJAX POST 数据仍然有限?

Linda Hamilton
Linda Hamilton原创
2024-11-04 06:05:02736浏览

Why Is My AJAX POST Data Limited Even With High PHP Limits?

PHP/Apache/AJAX POST 数据限制

尝试使用 AJAX 通过 POST 发送大量数据(200 万个字符)时(jQuery),PHP 端无法检索数据并返回“未定义索引”错误。这个问题与 php.ini 中的 post_max_size 设置无关,该设置足够高(256M)。

调查限制

问题在于施加的多重限制由涉及的各个组件process:

  1. Apache:

    • LimitRequestBody:控制传入 POST 请求的最大大小。您应该检查 Apache 错误日志以确定实际限制,默认情况下通常约为 2GB。
  2. PHP:

    • post_max_size:限制POST数据的大小。确保在 php.ini 中将此设置设置得足够高(例如 256M)。
    • upload_max_filesize:虽然与 POST 数据无关,但为了完整性值得一提。
    • max_input_time:控制最长时间允许 POST 数据处理。将其设置为较大的值以避免超时(例如,-1)。
    • max_input_nesting_level:限制 POST 数据中嵌套数组的深度。如果您的数据包含深度嵌套数组,则可能需要增加此值。
    • max_execution_time:不太可能是问题的原因。
    • memory_limit:确保 PHP 子进程有足够的内存来执行处理数据。相应地调整此设置(例如 256M)。
    • max_input_vars:限制 POST 请求中的变量数量。如果您的数据包含大量元素,您可能需要增加此值。

解决方案

如果 Apache 的 LimitRequestBody 是达到后,您无法直接 POST 数据,因为它超出了编译限制。您必须将数据分成更小的块并在多个 POST 请求中发送。

以上是为什么即使 PHP 限制很高,我的 AJAX POST 数据仍然有限?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn