原生ajax将application/json转换为multipart/form-data
时间: 2023-09-23 11:07:00 浏览: 163
原生的 Ajax 不支持直接将 JSON 转换为 multipart/form-data 格式,但可以手动将 JSON 转换为 FormData 对象,再发送请求。以下是一个示例:
```
function sendJSONAsFormData(url, data) {
const formData = new FormData();
for (let key in data) {
formData.append(key, data[key]);
}
const xhr = new XMLHttpRequest();
xhr.open('POST', url);
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
console.log(xhr.responseText);
}
};
xhr.send(formData);
}
const json = {
name: 'John',
age: 30
};
sendJSONAsFormData('/api', json);
```
在该示例中,我们定义了一个 `sendJSONAsFormData` 函数,它接受一个 URL 和一个 JSON 对象作为参数。函数会将 JSON 对象转换为 FormData 对象,并发送一个 POST 请求。当请求完成后,我们将服务器的响应输出到控制台。
请注意,该方法只能将 JSON 对象转换为 FormData 对象,无法将嵌套的 JSON 转换为嵌套的 FormData。如果您需要将嵌套的 JSON 转换为 multipart/form-data 格式,可能需要使用第三方库或编写自己的转换函数。
阅读全文