我正在使用 React 并想使用 Axios 发出 POST 请求。我正在尝试将表单数据发送到我的节点后端。
我正在尝试在 POST 请求中发送一个对象,该对象是将所有用户输入保存到表单的状态。
反应
const [formDetails, setFormDetails] = useState({})
const handleFormChange = (evt) => setFormDetails({ ...formDetails, [evt.target.name]: evt.target.value })
const sendInvoice = async (formDetails) => {
const response = await axios.post('/api/new_invoice', formDetails)
console.log(response)
}
节点路由
module.exports = (app) => {
// Create a new invoice
app.post('/api/new_invoice', async (req, res) => {
console.log('making a new invoice...')
try {
console.log(req.body)
res.send(req.body)
} catch (err) {
console.log(err)
res.status(400)
res.send({ error: err })
return
}
})
}
这就是我得到的:
当我查看响应的 req.body 时,它是一个空对象,即使我可以在发送表单时看到状态存在。
我还尝试对对象进行硬编码,这将在 req.body 上显示数据。
例如,如果我将请求更改为
const response = await axios.post('/api/new_invoice', {formData: 'this is form data'})
然后我可以在 req.body 中看到 formData: 'this is form data'
天涯尽头无女友
慕标琳琳
相关分类