在FormData中发送json
问题描述:
我可以在FormData中像在JSON中一样发送多级JavaScript对象吗?在FormData中发送json
例如:
{
items: [
{'title': 'first', 'amount': 20},
{'title': 'second', 'amount': 3}
]
}
为了通过FORMDATA送吧,我还有如果我这样做只是
data.append(`items[]`, obj.items);
做到这一点
const data = new FormData;
for(let i = 0; i < obj.items.length; i++) {
data.append(`items[${i}][title]`, obj.items[i]['titlte']);
data.append(`items[${i}][title]`, obj.items[i]['titlte']);
}
然后服务器只看到“[对象对象]'
我无法发布JSON,因为在这些项目的旁边我发送了一些文件。
答
尝试发送data.append('items[]', JSON.stringify(obj.items));
有什么办法可以发送多个字段而不需要遍历所有字段? Like data.append('items1 []',JSON.stringify(data.items1)); data.append('items2 []',JSON.stringify(data.items2)); – Vitaliy
另一种选择是在窗体上调用'.serialize()'。更多信息[这里](https://api.jquery.com/serialize/) – ztadic91