我尝试过 console.log
并使用 for in
循环它。
这里是 FormData 的 MDN 参考。
两次尝试都在这个小提琴中。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
如何检查表单数据以查看已设置哪些键。
P粉2352025732023-10-13 09:14:33
1 2 3 4 5 6 7 8 |
|
其他人建议记录 fd.entries() 的每个条目
,但 console.log
也可以采用多个参数console.log(foo , bar, ...)
要接受任意数量的参数,您可以使用 apply
方法并按如下方式调用它:console.log.apply(console,数组)
。
但是有一种新的 ES6 方法可以使用 扩展运算符 和迭代器console.log(...array)
。
知道这一点,并且事实上 FormData 和数组的两者都有一个 Symbol.iterator 方法在其原型中指定默认的 for。 ..of 循环,那么您可以使用 ...iterable
展开参数,而不必去调用 formData.entries()
方法(因为这是默认函数)如果您愿意,您可以执行 for (x of formData)
var fd = new FormData()
fd.append('key1', 'value1')
fd.append('key2', 'value2')
fd.append('key2', 'value3')
// using it's default for...of specified by Symbol.iterator
// Same as calling `fd.entries()`
for (let [key, value] of fd) {
console.log(`${key}: ${value}`)
}
// also using it's default for...of specified by Symbol.iterator
console.log(...fd)
// Only shows up in devtool (not here in this code snippet)
console.table([...fd])
// Don't work in IE (use last pair if same key is used more)
console.log(Object.fromEntries(fd))
如果您想检查原始主体的外观,那么您可以使用 响应构造函数(获取 API 的一部分),这会将您的表单数据转换为上传表单数据时实际的样子
var fd = new FormData()
fd.append('key1', 'value1')
fd.append('key2', 'value2')
new Response(fd).text().then(console.log)
P粉1419112442023-10-13 00:04:34
更新方法:
截至 2016 年 3 月,最新版本的 Chrome 和 Firefox 现在支持使用 FormData.entries()
来检查 FormData。 来源。
1 2 3 4 5 6 7 8 9 |
|
感谢Ghost Echo和rloth 指出了这一点!
旧答案:
查看这些 Mozilla 文章,看起来无法从 FormData 对象中获取数据。您只能使用它们来构建 FormData 以通过 AJAX 请求发送。
我还刚刚发现这个问题说明了同样的事情:FormData.append("键”、“值”)不起作用。
解决这个问题的一种方法是构建一个常规字典,然后将其转换为 FormData:
1 2 3 4 5 6 7 8 9 10 |
|
如果您想调试普通的 FormData 对象,您还可以发送它以便在网络请求控制台中检查它:
1 2 3 |
|