将JavaScript对象转换为JSON并将其POST

时间:2013-02-07 12:01:47

标签: javascript jquery json

我必须解析我的html并将其发布到另一个脚本。当我使用JSON.stringify序列化带有解析数据的对象时,接收脚本中的$ _POST数组为空:

$("#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过剩。

1 个答案:

答案 0 :(得分:2)

在您的情况下,serialize可能会更好:

var form = $(this).serialize();    
$.post("add_kind.php", form, function(data) {
    alert(data);
});