【问题标题】:Send json in FormData在 FormData 中发送 json
【发布时间】:2017-11-25 15:29:21
【问题描述】:

我可以像在 JSON 中一样在 FormData 中发送多级 javascript 对象吗?

例如:

{
     items: [
         {'title': 'first', 'amount': 20},
         {'title': 'second', 'amount': 3}
     ]
}

为了通过 FormData 发送它,我必须这样做

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']);
}

如果我只是这样做

data.append(`items[]`, obj.items);

然后服务器只看到'[Object object]'

我不能发布 JSON,因为除了这些项目我还发送了一些文件。

【问题讨论】:

    标签: javascript json multipartform-data form-data


    【解决方案1】:

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

    【讨论】:

    • 有没有办法发送多个字段而不遍历所有字段?像 data.append('items1[]',JSON.stringify(data.items1)); data.append('items2[]',JSON.stringify(data.items2));
    • 另一种选择是在表单上调用.serialize()。更多信息here
    猜你喜欢
    • 2018-05-23
    • 1970-01-01
    • 1970-01-01
    • 2023-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-14
    相关资源
    最近更新 更多