使用$ .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)