node.js - 使用 Vue 前端和 Axios 将表单数据发布到 Express 后端
问题描述
我有一个基本的 bootstrap-vue 表单,我正在尝试使用 Axios 将表单数据发布到 Express。
然而,目前我的 req.body 响应如下所示:body: { '{"name":"","country":"","message":""}': '' }
我真的很感激帮助我如何解决这个问题。我似乎无法弄清楚这一点。
形式:
<b-form @submit="onSubmit">
<b-form-input v-model="form.name" required></b-form-input>
<b-form-input v-model="form.country" required></b-form-input>
<b-form-input v-model="form.message" required></b-form-input>
方法:
methods: {
onSubmit (evt) {
evt.preventDefault()
axios.postForm(this.form)
}
}
爱讯:
const AXIOS = axios.create({
baseURL: 'http://localhost:8081', // I'm running my node server here
timeout: 5000,
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
});
export default {
postForm (form) {
return AXIOS.post(`/newmessage/`, form)
}
};
表达:
// ..require stuff here
app.use(bodyParser.urlencoded({ extended: true }));
app.post('/newmessage/', (req, res) => {
console.log(req.body)
});
解决方案
这是修复:
方法:
methods: {
onSubmit (evt) {
evt.preventDefault()
axios.postForm(JSON.stringify(this.form))
}
}
爱讯:
const AXIOS = axios.create({
baseURL: 'http://localhost:8081',
timeout: 5000,
headers: { 'Content-Type': 'application/json' }
});
表达:
app.use(bodyParser.json());
推荐阅读
- java - Spring-data-jpa 更新。java.lang.IllegalArgumentException:要遍历的节点不能为空
- ssl - 如何列出 TLS 1.2 密码套件 im openssl 1.0.2g
- java - Beans 和 RabbitTemplate/ RabbitHealth 的 TomcatStarter 错误
- android - 从卡片视图中移除样式(半径/高度)
- r - 与 geom_smooth 的置信边界相关的条件线颜色
- php - 如何使用修剪函数从 NOW() 函数中删除时间
- xml - XSLT 使用 value-of 选择缺少内容
- casting - 当我有一个 uint32 (R32) 纹理并在着色器中对其进行采样/获取时会发生什么?
- java - Junit 测试与休息控制器方法的模拟
- java - 在 Intellij IDEA Java 中连接表单,swing