每次我通过React上的表单向我的API提交一个PUT请求时,请求主体总是空的,我不完全确定数据发生了什么。
const handleEdit = async (e) => {
e.preventDefault()
console.log("Submitted")
const formData = new FormData()
formData.append("author", author)
formData.append("title", title)
formData.append("image", image)
formData.append("body", body)
// alert(author + " " + title + " " + image + " " + body)
const response = await fetch(`http://localhost:3002/api/blogs/put/${selectedId}`,{
method: "PUT",
body: formData,
})
if (response.status === 200) {
alert("Updated")
window.location.reload()
} else {
console.log("Error")
}
}
字符串
代码在表单提交后运行。我已经确认了附加的数据不为空,并且具有所有正确的值。
这是请求处理程序:
app.put("/api/blogs/put/:id", (req, res) => {
const id = req.params.id;
const author = req.body.author;
const title = req.body.title;
const image = req.body.image;
const body = req.body.body;
console.log(req)
db.query("UPDATE blogs SET author = ?, title = ?, image = ?, body = ? WHERE id = ?", [author, title, image, body, id], (err, result) => {
if (err) {
console.log(err);
res.status(500).send('Error updating blog post');
}
res.send(result);
})
})
型
当我console.log(req)时,body:{}是空的。
没有错误,请求成功通过,只是将我的SQL服务器上的所有字段更新为null。
当表单被提交时,所有必需的字段都被追加到formData中,我已经确认了它们不是null,然后一旦请求通过,它到达处理程序,然后一切都是null,主体是空的。
我还尝试在请求中添加processData:false、contentType:false(单独或两者)。
在控制台或我能看到的任何东西中都没有错误。
1条答案
按热度按时间pb3s4cty1#
字符串