【问题标题】:Inspect FormData object with console.log [duplicate]使用 console.log 检查 FormData 对象 [重复]
【发布时间】:2019-03-28 16:36:53
【问题描述】:

我已经创建了 FormData 对象:

var data = new FormData()
data.append('image', input[0].files[0])
data.append('user', 'hubot')

现在当我尝试像那样检查它时

console.log(data)

我得到空的FormData 对象(唯一的属性是__proto__)。没有 imageuser 属性。

【问题讨论】:

  • console.log(Array.from(data));
  • @ponury-kostek 好的,谢谢。有用。但我现在的问题是,为什么简单的 console.log 可以与 user = {name: "John"} 之类的对象一起使用,但不能与 FormData 一起使用?

标签: javascript html


【解决方案1】:

您应该遍历 entriesFormDataobject 的类型,因此您必须通过 get 方法或迭代 entries 来获取值,而不是记录自己。方法如下。

var data = new FormData()
//data.append('image', input[0].files[0])
data.append('user', 'hubot')
   
for(var pair of data.entries()) {
   console.log(pair[0]+ ', '+ pair[1]); 
}
  

如果你想一次只获取一个值,你可以通过key获得

  console.log(data.get('user'));
  // 'hubot'

编辑

Spread 语法允许在预期有零个或多个参数(对于函数调用)或元素(对于数组字面量)的地方扩展诸如数组表达式或字符串之类的可迭代对象,或者在需要扩展对象表达式的地方预期零个或多个键值对(用于对象文字)。 More from here 。所以如果你想简单地登录

   // console.log(...data);

【讨论】:

  • 好的,谢谢。有用。但我现在的问题是,为什么简单的 console.log 可以与 user = {name: "John"} 之类的对象一起使用,但不能与 FormData 一起使用?
【解决方案2】:

试试这个:

for (var d of data.entries()) {
    console.log(d); 
    // Do whatever with d
}

【讨论】:

  • 好的,谢谢。有用。但我现在的问题是,为什么简单的 console.log 可以与 user = {name: "John"} 之类的对象一起使用,但不能与 FormData 一起使用?
猜你喜欢
  • 2018-09-10
  • 2014-03-19
  • 2017-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多