加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP / Apache / AJAX – POST限制?

发布时间:2020-12-13 16:35:47 所属栏目:PHP教程 来源:网络整理
导读:我试图通过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}
我试图通过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这么大的数据量,你必须把它分成几块.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读