我正在尝试通过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:
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>标记中使用的属性。
<form>
样本输出
旁注:我认为serializeArray()更合适:
serializeArray()
results.push($(this).serializeArray());
另一个例子