我试图像这样向formData添加一些数据:
params = {'code': 'h1'}
const formData: FormData = new FormData();
formData.append('parameters', JSON.stringify(params));
当我尝试像这样从formData获取数据时:formData['parameters']
返回undefined
并且formData.entries.length
是0
。
我查看了一些站点,发现这是这样做的方法。
我在做什么错了?
谢谢。
答案 0 :(得分:2)
您的FormData
对象实际上不是空的。在添加数据后尝试访问数据的方式是错误的。
对我来说,以下作品:
const params = {'code': 'h1'}
const formData = new FormData();
formData.append('parameters', JSON.stringify(params));
for (const entry of formData.entries())
{
document.write(entry);
}
旁注:
formData.entries()
返回了interator object,因此没有length
属性。[]
。因此,您需要使用get() method检索值,如丹尼尔·贝克(Daniel Beck)在其答案中所示。答案 1 :(得分:1)
您错误地声明了FormData对象(编辑:针对javascript。该问题最初不是用打字稿标记的,我对此并不熟悉)
const params={'code': 'h1'}
const formData = new FormData()
formData.append('parameters', JSON.stringify(params))
// confirm:
console.log(formData.get('parameters'))
...但是如果您要在formData上设置多个参数,而不仅仅是一个名为“ parameters”的参数,则可能需要这样做:
const params={
'code': 'h1',
'foo': 'bar'
}
const formData = new FormData()
Object.keys(params).forEach((k) => {
formData.append(k, params[k])
})
// confirm:
console.log(formData.get('code'))
console.log(formData.get('foo'))