2017-11-25 145 views
0

我可以在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,因为在这些项目的旁边我发送了一些文件。

回答

0

尝试发送data.append('items[]', JSON.stringify(obj.items));

+0

有什么办法可以发送多个字段而不需要遍历所有字段? Like data.append('items1 []',JSON.stringify(data.items1)); data.append('items2 []',JSON.stringify(data.items2)); – Vitaliy

+0

另一种选择是在窗体上调用'.serialize()'。更多信息[这里](https://api.jquery.com/serialize/) – ztadic91