【发布时间】:2020-12-24 23:04:52
【问题描述】:
我正在使用 React 并想使用 Axios 发出 POST 请求。我正在尝试将表单数据发送到我的 Node 后端。
我正在尝试在 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'
【问题讨论】:
标签: javascript node.js reactjs axios xmlhttprequest