javascript - 使用 Fetch 发送文件和数据
问题描述
我有一个反应应用程序。我的申请状态如下
const [book, setBook] = useState({
title: '',
cover: {}
numberPages: 0,
resume: '',
date: date,
});
封面道具包含一个文件。当我尝试将状态转换为 json (JSON.stringify(book)) 以使用 FETCH 发送时,封面属性是一个空对象。如何正确发送此信息?
我的提交活动表格
let handleForm = (e) => {
data = JSON.stringify(book);
let info = {
method: 'POST',
body: data,
headers: {
'X-CSRF-TOKEN': header,
"Content-Type": "application/json",
"Accept": "application/json, text-plain, */*"
}
}
fetch('/books/add', info)
.then(response => response.json())
.then(result => console.log(result))
.catch(error => console.log(error));
e.preventDefault();
}
解决方案
当您在 fetch 中发送文件时,请确保您使用 formdata
var data = new FormData()
data.append('title', book.title)
data.append('cover', book.cover)
fetch('/', {
method: 'POST',
body: data
})
希望它有效。如果不是,请在您进行 api 调用的地方评论您的代码
推荐阅读
- javascript - 如何修复按钮不添加新的
- java - Dockerizing 一个 Play 应用程序 - 下载互联网
- php - 如何在 php 上显示从 scandir 生成的图像
- git - `name~n` 和 `name@{n}` 总是指同一个提交吗?
- wordpress - 剥离所需 HTML 的简码渲染
- kendo-ui - ./node_modules/@telerik/kendo-intl/dist/es/cldr/territory.js 中的 Angular 6 错误
- node.js - 如何为节点的 JSON.stringify() 设置默认选项?
- azure - Microsoft.ApplicationInsights.DependencyCollector 是否适用于 Azure Functions?
- css - 当用户滚动到它时,如何让 div 粘在屏幕底部?
- python - 如何在 python 中执行多线程 selenium 程序?