例子:
let data = { id: 12, name: '测试', list: [{ id: 22, name: "za", age: 12 }] };// 创建 FormData 实例
要使用 FormData
将数据提交给接口,首先需要了解 FormData
是如何工作的。FormData
是一种用于异步上传数据的表单数据结构,它可以让你以一种简单的方式发送键值对。
例子中,你有一个 JavaScript 对象 data
,它包含了嵌套的数据结构。要将这个对象转换为 FormData
,我们需要遍历这个对象,并将每个键值对添加到 FormData
实例中。
下面是一个示例代码,展示了如何将你的 data
对象转换为 FormData
,并使用 fetch
API 将其提交给接口:
let data = { id: 12, name: '测试', list: [{ id: 22, name: "za", age: 12 }] };// 创建 FormData 实例
let formData = new FormData();// 函数用于递归地将对象添加到 FormData
function addToFormData(obj, formData) {for (let key in obj) {if (obj.hasOwnProperty(key)) {// 如果是对象,则递归调用if (typeof obj[key] === 'object') {addToFormData(obj[key], formData);} else {// 否则,直接添加formData.append(key, obj[key]);}}}
}// 将数据添加到 FormData
addToFormData(data, formData);// 使用 fetch API 提交 FormData
fetch('YOUR_ENDPOINT_URL', {method: 'POST',body: formData
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
在这个代码中,我们首先定义了一个 addToFormData
函数,它递归地遍历对象并将每个键值对添加到 FormData
实例中。然后,我们使用 fetch
API 将 FormData
发送到服务器。请确保替换 'YOUR_ENDPOINT_URL'
为你的实际接口 URL。