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

如何使用FormData为同一个key设置并传递三个不同的value?

FormData 同一键传递多个值实现方案

首先纠正对FormData两个核心方法的特性误解:

  • FormData.set(key, value):当指定key存在时,会覆盖该key对应的所有原有值,仅保留本次传入的单个值
  • FormData.append(key, value):当指定key存在时,不会覆盖原有值,会追加新值到该key的取值列表末尾,天生支持同一个key对应多个值的需求

你之前的写法错误原因是循环内同时调用了set和append,每轮循环的set都会先清空该key之前的所有取值,再追加新值,最终只能得到重复的两组值。

正确实现代码

var bodyFormData = new FormData()
// 初始化渠道数组
const distributionChannels = []
distributionChannels.push('Push')
distributionChannels.push('Sms')
distributionChannels.push('Email')

// 仅使用append方法循环追加值即可
distributionChannels.forEach(element => {
  bodyFormData.append('distributionChannels', element)
})

效果验证

调用bodyFormData.getAll('distributionChannels')即可获取该key对应的所有取值,输出结果为:
["Push", "Sms", "Email"]

示例效果参考:
示例截图


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 20:09:03