我必須解析我的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