一尘不染

如何检查FormData?

javascript

我已经尝试过 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);
}

如何检查表单数据以查看设置了哪些键。


阅读 399

收藏
2020-04-25

共1个答案

一尘不染

更新方法:
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和rloth指出了这一点!

旧答案:

看完这些文章之后,似乎无法从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);
2020-04-25