[英]Post data $(form).serialize() and an array together
我無法通過Ajax發送表單。 除了用戶填充的字段外,我還需要一起發送對象array
。
AJAX POST:
submitHandler: function (form) {
$.ajax({
url: urlPost,
type: "POST",
dataType: "json",
data: $(form).serialize() + JSON.stringify(myArray),
success: function (resposta) {
alert('success');
}
});
}
如果我只發送$(form).serialize()
,則可以,但不發送array
。
陣列:
myArray = [{name: 'a', node: 1}, {name: 'b', node: 12}, ...];
將您的data: $(form).serialize() + JSON.stringify(myArray)
更改為data: $(form).serialize() + "&arr=" + JSON.stringify(myArray)
。 有關更多幫助,請參閱https://stackoverflow.com/a/10398820/4518930
.serialize() + Some JSON String
沒有意義。
根據文檔:
https://api.jquery.com/serialize/
.serialize()方法以標准的URL編碼表示法創建文本字符串。
因此,您實際上是在使用像foo=bar&goat=baz
這樣的字符串,然后添加一個JSON字符串。 這沒有任何意義。
我認為您最好自己將表單序列化為JSON對象。 為您的數組添加另一個鍵,然后通過JSON.stringify
將對象轉儲到JSON,並且該字符串是您的請求數據。
在Cody Caughlan提出技巧之后,我創建了一個對象,該對象添加了表單和數組本身的所有屬性。 代碼如下:
var dataForm = {};
$($(form).serializeArray()).each(function(index, obj){
dataForm[obj.name] = obj.value;
});
dataForm["MyArray"] = myArray;
還有ajax: post: dataForm
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.