วิธีการปรับปรุง:
ตั้งแต่เดือนมีนาคม 2559 ปัจจุบัน 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 ที่ชี้เรื่องนี้ออกมา!
คำตอบเก่า:
หลังจากดูบทความMozilla เหล่านี้ ดูเหมือนว่าไม่มีวิธีในการรับข้อมูลจากวัตถุ FormData คุณสามารถใช้พวกเขาสำหรับการสร้าง FormData เพื่อส่งผ่านคำขอ AJAX
ฉันยังพบเพียงแค่คำถามนี้ที่ระบุว่าสิ่งเดียวกัน: FormData.append ( "กุญแจ", "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);