小编典典

PHP / Apache / AJAX-POST限制?

ajax

我正在尝试通过ajax(jQuery)发送200万个字符(非二进制字符串)的POST数据,并且在PHP方面总是空白。这是我的代码:

var string = "<data string that is 2M chars long>";
$.ajax({
    cache: false,
    type: 'POST',
    url: 'data.php',
    data: {'data_string': string}
});

在PHP方面,我收到以下错误消息(尝试从中检索数据时$_POST['data_string']):

Notice: Undefined index: data_string in data.php on line ...

我已经检查了post_max_sizephp.ini,并将其设置为256M,这是否足够?我很困惑,不确定自己在做什么错…

编辑:如果我做"string"少量数据(例如var string = 'test'),则按预期$_POST["data_string"]返回test。所以我想知道我是否在Apache2,PHP或浏览器本身中达到某种数据限制?我正在使用Google
Chrome浏览器17.0.963.79

EDIT2:memory_limit = 256M在php.ini中

EDIT3:max_input_time = -1在php.ini中

EDIT4:var_dump($ _ POST)返回数组(0)

EDIT5:在debian squeeze上运行最新的稳定版PHP5:具有Suhosin-Patch(cli)的PHP 5.3.3-7 +
squeeze8(构建:2012年2月10日14:12:26)


阅读 278

收藏
2020-07-26

共1个答案

小编典典

您必须检查您与服务器之间所有项目的限制参数。对于代理服务器非常困难(如果有的话),但是至少您可以检查:

阿帕奇:

  • LimitRequestBody,默认情况下约为2Gb,对于64位可能更大,请查看错误日志以获取详细信息。

PHP:

如果您已达到Apache的已编译限制,则唯一的解决方案是避免直接处理如此大数据块的POSt,您必须将其分成几部分。

2020-07-26