我正在尝试通过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/