我正在尝试通过ajax帖子提交多种表单,但是问题是服务器在帖子中返回了一个空数组。

这是我的JS中的代码:

$('#check_test').click(function(e){
    e.preventDefault();
    e.stopPropagation();

    var results = [];
    $('form').each(function(){
        results.push($(this).serialize());
    });

    $.ajax({
        'url': 'handler/test_handler.php',
        'method': 'POST',
        'data': JSON.stringify(results),
        'dataType': 'html',
        'success': function (data) {
            console.log(data);
        }
    });
});

在服务器端:
var_dump(json_decode($_POST)); // null
var_dump($_POST); // empty array

我究竟做错了什么?谢谢!

最佳答案

不,没有method属性,其type:

$.ajax({
    'url': 'handler/test_handler.php',
    'type': 'POST', // type not method
    'data': {data: JSON.stringify(results)},
    'dataType': 'html',
    'success': function (data) {
        console.log(data);
    }
});
method<form>标记中使用的属性。

Sample Output

旁注:我认为serializeArray()更合适:
results.push($(this).serializeArray());

Another example

关于javascript - 通过ajax提交多种表格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28495064/

10-12 07:02