如何使用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
相关产品推荐
相关产品推荐

