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 ...
我检查了PHP.ini中的post_max_size,它设置为256M,这应该是足够的?我被困了,不知道我做错了什么
编辑:如果我将“string”的数据量少(例如var string =’test’),那么$_POST [“data_string”]会按预期的方式返回测试.所以我想知道是否有一些数据限制我在Apache2,PHP或浏览器本身?我正在使用Google Chrome 17.0.963.79
EDIT2:在PHP.ini中memory_limit = 256M
EDIT3:PHP.ini中的max_input_time = -1
EDIT4:var_dump($_ POST)返回数组(0)
EDIT5:运行最新的稳定版本的PHP5在debian挤压:PHP 5.3.3-7 squeeze8与Suhosin-Patch(cli)(建立:2012年2月10日14:12:26)
阿帕奇:
> LimitRequestBody,默认情况下约2Gb,64位可能更大,查看错误日志的详细信息.
PHP:
> post_max_size与POST大小直接相关
> upload_max_filesize可能是无关的,不确定
> max_input_time,如果POSt花费的时间太长
> max_input_nesting_level如果你的数据是一个有很多子级的数组
> max_execution_time,但相当确定不是这样
> memory_limit,因为你可能会达到一个超过子进程允许内存的大小
> max_input_vars,如果你的数据数组有很多元素
如果你已经达到了Apache的编译限制,你唯一的解决方案是避免直接的POSt这么大的数据量,你必须把它分成几块.