【发布时间】:2015-12-09 16:50:37
【问题描述】:
我想POST一个包含数组的数据对象。
我认为对象需要在发布之前进行序列化,但我不知道该怎么做。
我尝试了以下方法,但我使用的 serialize 函数中断了,因为我的对象包含一个数组:
var serialize = function (obj, prefix)
{
var str = [];
for(var p in obj) {
if (obj.hasOwnProperty(p)) {
var k = prefix ? prefix + "[" + p + "]" : p, v = obj[p];
str.push(typeof v == "object" ?
serialize(v, k) :
encodeURIComponent(k) + "=" + encodeURIComponent(v));
}
}
return str.join("&");
};
$.ajax({
type: 'POST',
url: '/xxxx',
data: serialize({
a: 'xxx',
b: 123456,
c: [{d: "xxx", e: "xxx"}, {d: "xxx", e: "xxx"}]
})
});
});
【问题讨论】:
-
添加到下面的答案中,jQuery 已经为表单元素提供了一个 serialize() 函数。
标签: javascript html arrays post serialization