在Express JS中使用POST方法在不刷新页面的情况下在一个页面中提交多个表单,可以通过以下步骤实现:
body-parser
中间件来解析POST请求的请求体。安装body-parser
模块并引入它:const express = require('express');
const bodyParser = require('body-parser');
const app = express();
// 使用body-parser中间件
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
fetch
或axios
等工具发送POST请求到服务器。<form id="form1">
<!-- 表单1的输入字段 -->
<input type="text" name="field1" />
<input type="submit" value="提交表单1" />
</form>
<form id="form2">
<!-- 表单2的输入字段 -->
<input type="text" name="field2" />
<input type="submit" value="提交表单2" />
</form>
<script>
document.getElementById('form1').addEventListener('submit', function (event) {
event.preventDefault(); // 阻止表单默认提交行为
// 获取表单数据
const formData = new FormData(this);
// 发送POST请求到服务器
fetch('/submit', {
method: 'POST',
body: formData
})
.then(response => response.json())
.then(data => {
console.log(data);
})
.catch(error => {
console.error(error);
});
});
document.getElementById('form2').addEventListener('submit', function (event) {
event.preventDefault(); // 阻止表单默认提交行为
// 获取表单数据
const formData = new FormData(this);
// 发送POST请求到服务器
fetch('/submit', {
method: 'POST',
body: formData
})
.then(response => response.json())
.then(data => {
console.log(data);
})
.catch(error => {
console.error(error);
});
});
</script>
app.post('/submit', (req, res) => {
const formId = req.body.formId; // 根据表单的唯一标识符来区分不同的表单
// 处理表单数据
// ...
res.json({ success: true });
});
这样,你就可以在Express JS中使用POST方法在不刷新页面的情况下在一个页面中提交多个表单了。根据表单的唯一标识符,你可以在服务器端区分不同的表单,并对其进行相应的处理。
领取专属 10元无门槛券
手把手带您无忧上云