似乎当我 .post() 一个大数组时,很多信息都被删除了。在下面的代码片段中,第一个 .html() 显示了所有数组数据,而 PHP 的返回结果只显示了部分数据。
JavaScript:
$('.inner').html(JSON.stringify(dbData));
$.post( "test.php", {'filename' : filename, 'dbData' : dbData}, function(result) {
$('.inner').html(result);
});
PHP:
ini_set('display_errors', 'On');
$filename = $_POST['filename'];
$dbData = $_POST['dbData'];
$file = $myfile = fopen($filename, 'w');
echo json_encode($dbData);
php.ini 的 post_max_size = 8M,而我发送的数据远小于 8M。
编辑:数组中的数据似乎在某个点后被切断。没有错误。
最佳答案
尝试增加 max_input_vars
的值。我相信默认值为 1000。
我遇到过几次这个问题,在生成的表单中,数据库表中的每一行都有一个或多个字段,当它增长到几百行时,后面的表单字段会被砍掉。
虽然您似乎只为此使用了一个 POST var,$_POST['dbData']
,但如果 AJAX 请求将 dbData 的每个元素作为单独的 &dbData[ ]=...
参数,这将被计算多次。
关于javascript - POST 数据被缩短,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30579145/