You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在FormData.append方法中传输ID数组并保持标准数组格式?

问题原因

FormData的append()方法传入非字符串/Blob类型的参数时,会自动调用参数的toString()方法做类型转换。数组的默认toString()返回结果就是逗号拼接的元素字符串,所以你传入[64,65]最终就会变成"64,65"。


解决方法

方案1:提交JSON序列化后的数组(推荐)

如果后端可以兼容解析JSON格式的参数,直接把数组做JSON序列化后再传入append即可,提交的格式就是你需要的[64,65]字符串,后端拿到后做一次JSON反序列化就能得到标准数组。
修改后的代码如下:

const update = () => {
    let deleteDoc = deleteDoc_temp; 
    let formData  = new FormData();
    // 把数组转成JSON字符串再append
    formData.append('deleted_attachment', JSON.stringify(deleteDoc));
   
    for (var pair of formData.entries()) { console.log(pair[0]+ ', ' + pair[1]); }
}

方案2:提交Form标准数组格式

如果后端期望接收传统Form表单的数组参数(参数名带[]后缀,多个同名参数分别传值),可以遍历数组逐个添加到FormData中:

const update = () => {
    let deleteDoc = deleteDoc_temp; 
    let formData  = new FormData();
    // 遍历数组逐个添加,参数名加[]后缀符合多数后端框架的表单数组解析规则
    deleteDoc.forEach(id => {
        formData.append('deleted_attachment[]', id);
    })
   
    for (var pair of formData.entries()) { console.log(pair[0]+ ', ' + pair[1]); }
}

这种方式后端可以直接解析得到数组类型的deleted_attachment参数,不需要额外做JSON反序列化。


内容的提问来源于stack exchange,提问作者duatree

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 10:45:06