1

我有一个非常大的多维 Javascript 数组,我使用 AJAX POST 将其传递给我的 PHP 文件:

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

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

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

发布问题

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

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

感谢您提供的任何帮助!

4

3 回答 3

2

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

于 2012-10-13T15:57:00.797 回答
0

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

于 2012-10-13T17:13:32.290 回答
-1

删除文件;中的(分号)php.ini,设置增加max_input_vars然后它工作:

max_input_vars = 10000

于 2014-03-27T08:08:38.023 回答