jQuery AJAX没有将完整数组发布到服务器

时间:2012-10-13 15:39:26

标签: php jquery ajax post multidimensional-array

我有一个很大的多维Javascript数组,我用AJAX POST传递给我的PHP文件:

$.ajax({
    type: "POST",
    dataType: 'json',
    url: "forms/scripts/testArray.php",
    data: {
        header: header,
        gridData: gridData
    }
});

gridData是我的多维数组,它有1000个元素,每个子数组包含3个元素。当我调试并查看我的PHP文件中的数据时,来自POST的数组中只有大约350个元素。

使用Firebug,我收到有关发送的文件大小和收到的文件大小的信息:

POST Problem

正如你所看到的,小弹出窗口告诉我AJAX调用发送了462.8 KB但实际上只收到4.9 KB。这是真的?这就是为什么我只得到我试图发布的数组的一部分?

此外,这是通过AJAX POST将多维数组从Javascript移动到PHP的最佳方法吗?

感谢您提供的任何帮助!

3 个答案:

答案 0 :(得分:2)

可能工具链中的某些内容限制了可以发送/接收的最大数量。这可以通过您的网络服务器(可能是Apache),或者(更可能)在您的PHP设置中。 PHP有一些设置,如post_max_size,max_input_time,max_input_nesting_level,max_input_vars等。你应该看看这些设置!

答案 1 :(得分:0)

数据中可能有一个奇怪的字符抛出了json编码/解码,或者只是在被“接收”的最后一个元素之后。

答案 2 :(得分:-1)

删除;文件中的php.ini(分号),设置增加max_input_vars然后就可以了:

max_input_vars = 10000