PHP / Apache / AJAX – POST限制?

前端之家收集整理的这篇文章主要介绍了PHP / Apache / AJAX – POST限制?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图通过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 ...

我检查了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这么大的数据量,你必须把它分成几块.

原文链接:https://www.f2er.com/php/132490.html

猜你在找的PHP相关文章