使用$ .post(JQuery)作为JSON数组发布大约100行数据。
但是由于某种原因,并不是所有行都被接收到。

数据看起来或多或少像这样(内容基本上是数字和小字符串):

rows = [["U", "0", "81949", 32 more...], ["U", "0", "81950", 32 more...] ..... ]


我发送数据的方式是:

$.post(url+"callback=?", { data : rows }, function(){}, "json");


如果我回显本地版本中收到的行数(count($ _ POST)),它将显示为“ 100”,但是在生产服务器上,它将显示为“ 25”(每次都是相同数量)。

检查firebug中的请求详细信息,它可以正确显示所有100个已发送。

我虽然可以是PHP的“ post_max_size”值,但我将其设置为“ 100M”,我认为这已经足够了。

我很确定它必须与服务器设置有关,但是我没有主意...
提前致谢。

更新:


生产服务器具有8GB的内存,这大约使用了一半的内存
它(这不是内存问题)。
没有超时(所有过程大约在3秒钟内完成)。

最佳答案

您的生产服务器是否使用suhosin? Suhosin通常是限制请求大小(GET和POST)的罪魁祸首。它们对POST和GET大小有单独的限制(实际上,我记得一个影响另一个,因此都必须增加)。

看看您的phpinfo(),看看那里是否有关于suhosin的东西。

Suhosin值可能会影响您:


suhosin.get.max_vars
suhosin.post.max_vars
suhosin.request.max_vars


(+等价的值和var长度)

另外,如果您要上传文件,那么suhosin也会对此进行限制:


suhosin.upload.max_uploads(因此默认为25)

10-04 22:17