我已经尝试了console.log和循环通过它使用for in。

这里是关于FormData的MDN参考。

两种尝试都在这把小提琴上。

var fd = new FormData(),
    key;

// poulate with dummy data
fd.append("key1", "alskdjflasj");
fd.append("key2", "alskdjflasj");

// does not do anything useful
console.log(fd);

// does not do anything useful   
for(key in fd) {
    console.log(key);
}

如何检查表单数据以查看已设置的键。


当前回答

试试这个函数:

function formDataToObject(formData) {
  return Array.from(formData.entries()).reduce((old, pair) => ({
    ...old,
    [pair[0]]: pair[1],
  }), {});
}

其他回答

更新方法:

截至2016年3月,最新版本的Chrome和Firefox现在支持使用FormData.entries()来检查FormData。源。

// Create a test FormData object
var formData = new FormData();
formData.append('key1', 'value1');
formData.append('key2', 'value2');

// Display the key/value pairs
for (var pair of formData.entries()) {
    console.log(pair[0]+ ', ' + pair[1]); 
}

感谢Ghost Echo和loth指出这一点!

旧的回答:

在阅读了这些Mozilla文章之后,似乎没有办法从FormData对象中获取数据。您只能使用它们来构建通过AJAX请求发送的FormData。

我还发现了这个问题,说明了同样的事情:FormData。Append ("key", "value")无效。

解决这个问题的一种方法是建立一个常规字典,然后将其转换为FormData:

var myFormData = {
    key1: 300,
    key2: 'hello world'
};

var fd = new FormData();
for (var key in myFormData) {
    console.log(key, myFormData[key]);
    fd.append(key, myFormData[key]);
}

如果你想调试一个普通的FormData对象,你也可以发送它,以便在网络请求控制台检查它:

var xhr = new XMLHttpRequest;
xhr.open('POST', '/', true);
xhr.send(fd);

formData.entries()在最新版本中抛出错误。 所以你可以试试下面的方法:

formData.forEach((value: FormDataEntryValue, key: string) => {
      console.log(value, key);
    })

在angular 6的typeScript中,这段代码为我工作。

var formData = new FormData();
formData.append('name', 'value1');
formData.append('name', 'value2');
console.log(formData.get('name')); // this is return first element value.

或者对于所有值:

console.log(formData.getAll('name')); // return all values

ES6 +方案:

要查看表单数据的结构:

console.log([...formData])

要查看每个键-值对:

for (let [key, value] of formData.entries()) {
  console.log(`${key}: ${value}`);
}

var formData = new FormData();
formData.append('key1', 'value1');
formData.append('key2', 'value2');

formData.forEach((value,key) => {
  console.log(key+" "+value)
});

不是:当我在使用Angular 5(使用TypeScript 2.4.2)时,我尝试了上面的方法,除了静态检查错误外,它可以正常工作,但(var pair of formData.entries())也不能正常工作。

新格式(); formData。append(’key1’,’value1’); formData。append(’key2’,’value2’); 初始化。 游戏机。log (key +”“+价值) ');

去斯塔克布利茨看看