使用$ .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”,我认为这已经足够了。
我很确定它必须与服务器设置有关,但我没有想法...... 提前谢谢。
更新
答案 0 :(得分:9)
已经有一个已接受的答案,但对于那些不使用suhosin的人,问题可能是“max_input_vars”php设置较低。我的默认设置为1000,这还不够。
答案 1 :(得分:3)
您的生产服务器是否使用suhosin? Suhosin通常是限制GET和POST请求大小的罪魁祸首。它们对POST和GET大小有不同的限制(事实上,一个因我记忆而影响另一个,因此两者都必须增加)。
看看你的phpinfo(),看看那里是否有关于suhosin的任何内容。
可能影响您的Suhosin值:
(+等价值和变长)
此外,如果您正在上传文件,那么这也受到suhosin的限制:
答案 2 :(得分:0)