formdata.append 未按预期工作并覆盖而不是追加现有值

formdata.append doesnot work as expected and overwrites instead of appending with the existing value

根据 MDN 文档 'append' 添加值并 'set' 覆盖值;所以下面的代码最好给我 Chris&Chris1&Chris2;但是我得到 Chris&

我的理解有误吗?如果是这样,获得 Chris&Chris1&Chris2 的正确方法是什么?

var formData = new FormData();
formData.append('username', 'Chris&');
formData.append('username', 'Chris1&');
formData.append('username', 'Chris2');
formData.get('username')

您需要使用 getAll 而不是 get getAll documentation

var formData = new FormData();
formData.append('username', 'Chris&');
formData.append('username', 'Chris1&');
formData.append('username', 'Chris2');
formData.getAll('username')

formData.getAll('username') 将 return 一个数组 (3) ["Chris&", "Chris1&", "Chris2"]


您可以继续使用空字符串加入它

formData.getAll('username').join('') 得到预期结果。


formData.getAll('username').join() 会给你 csv

Chris&,Chris1&,Chris2