如果POST数据超过几百个字符,则从jQuery到PHP的POST请求会被卡住

我有一个简单的Ajax请求由jQuery启动到PHP脚本:

$.ajax({ url:"script.php", data: data, type: "POST" // error & success handlers here }); 

如果数据(可能是JSON,可能是一个二进制文件),超过几百个字符的长度,POST请求永远不会完成,它只是挂在那里。 没有错误在Apache日志或JS控制台,没有其他迹象可能会发生。

摆弄php.ini post_max_data和其他设置没有产生任何结果,所有我能想到的设置被设置为非常宽松的值。

我运行的是Apache 2.4和PHP 5.5.9的Ubuntu 14.04服务器。

我错过了什么?

你是否检查过你的请求长度的PHPconfiguration? 有几个参数控制请求的大小,我将在这里包括最重要的参数(直接从php.ini引用)。

 ; Maximum size of POST data that PHP will accept. ; Its value may be 0 to disable the limit. It is ignored if POST data reading ; is disabled through enable_post_data_reading. ; http://php.net/post-max-size post_max_size = 10M ; How many GET/POST/COOKIE input variables may be accepted max_input_vars = 1000 

如果你在postvariables中有一个高度嵌套的数据结构,这个可能需要增加(而不太可能)

 ; Maximum input variable nesting level ; http://php.net/max-input-nesting-level max_input_nesting_level = 64 

如果这不起作用,我只是发现了一个很好的总结如何在apache / php中增加你的限制和超时: http : //www.devside.net/wamp-server/apache-and-php-limits-and-超时

希望这可以帮助,

亲切的问候和快乐的编码!