我必须解析我的html并将其发布到另一个脚本。当我使用JSON.stringify
序列化对象与解析的数据,在接收脚本$ _POST数组为空:将JavaScript对象转换为JSON并将其张贴
$("#addQueryForm").submit(function(event){
event.preventDefault();
result = {}
result['kindArr'];
result['factor'];
$("[rel=my-form]").each(function() {
result[$(this).attr("name")] = $(this).attr("value");
});
var form = JSON.stringify(result);
$.post("add_kind.php", form , function(data) {
alert(data);
//data shows me that $_POST array is empty
});
});
但是如果我手动编写JSON字符串查询,这将是正确的:
$.post("add_kind.php", {"kind":"Var1","kindArr":"Var12345","factor":"Var0","synonym1":"Var1","synonym2":"Var2","synonym3":"Var3"} , function(data) {
alert(data);
//data shows me that $_POST contains posted data
});
我在做什么错?
P.S:stringify
过量。
可以使用$(“#形式”)序列化() –
你的第二个版本是不是一个JSON字符串,它是一个Javascript对象。 jQuery将其转换为www-form-urlencoded格式,而不是JSON。 – Barmar
您不需要对结果进行字符串化处理,jQuery将为您正确处理所有内容。所以交'result'应该可以。但是,字符串也可以工作,因此可能会出现错误。 '(“[rel = my-form]”)是否会产生所需的结果集? – Christoph