AJAX POST数据未完全发送到服务器

时间:2015-10-21 14:59:51

标签: php ajax post

我通过我网站上的表单上传CSV(65KB),用papaparse解析,然后用ajax将其发布到我的服务器:

console.log(csv)
// if everything is ok, send via AJAX to process with PHP
$.ajax({
    type: "POST",
    url: "scripts/batch_objects.php",
    dataType: 'json',
    data: {'Data': csv},
    success: function(result){
        $("#batchResult").html(result);
    },
    error: function(result) {
        $("#batchResult").html(result);
    },
});

在控制台中,我可以看到CSV已正确上传和解析 - 它确认所有行(其中435个)都在csv var中设置。在服务器端,我有一个快速的脚本来检查:

<?php
    $csv = $_POST['Data'];
    echo count($csv);
?>

然而,在服务器端,我只获得了143行(echo语句的输出),而不是全部435行。

我已尝试在我的.htaccess中设置php_value post_max_size 20M,但这没有帮助。

1 个答案:

答案 0 :(得分:0)

以下针对我的固定事项(找到灵感here):

// get our data together
var postData = {};
postData.Table = table;
postData.Action = action;
postData.Data = csv;

// if everything is ok, send via AJAX to process with PHP
$.ajax({
    type: "POST",
    url: "scripts/batch_objects.php",
    contentType: "application/json",
    data: JSON.stringify(postData),
    success: function(result){
        $("#batchResult").html(result);
        console.log("Success " + result);
    },
    failure: function(result) {
        $("#batchResult").html('ERROR: ' + result);
        console.log('Eror ' + result);
    },
});

然后在服务器端,您可以使用以下命令访问POST数据:

$post_data = json_decode($HTTP_RAW_POST_DATA);