javascript - 在表单上表达 JS 提交停留在页面上

标签 javascript node.js forms express

我知道这可能是一个简单的问题,并且某处有教程,但我似乎找不到它。 我使用 express-generator 生成了一个应用程序,并向路由添加了一个简单的表单

views/form.ejs

<div>
<h1>This is <%= name %></h1>
<form action="/form" method="POST">
    <input type="text" name="question" placeholder="question"><br>
    <input type="text" name="answer" placeholder="answer"><br>
    <input type="submit">
</form>

我想做的是在提交表单后处理请求,而不对页面做任何事情。基本上我希望它保持不变所以我尝试了以下

routes/index.js

var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' });
});

router.get('/form', function (req, res) {
    res.render('form', {name: "My Name"});
});

router.post('/form', function (req, res) {
    console.log(req.body);
});

module.exports = router;

发生的事情是浏览器一直在等待服务器的响应。我尝试添加 next() 但它给出了错误,我也尝试从函数返回但没有用。 那么我如何在不响应客户端的情况下发出发布请求或处理任何路由?

最佳答案

我想这里的问题是“你为什么要这样做?”;你想通过允许不响应客户端的发布请求来实现什么?

我认为,您最好的选择是执行 res.json(successOrFailureMessage) 以便您的客户端应用程序了解发生了什么,并可以从那里做一些事情(或者实际上什么都不做)。否则它会在等待响应时挂起。

关于javascript - 在表单上表达 JS 提交停留在页面上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39315784/

相关文章:

Javascript正则表达式匹配多个条件

javascript - InDesign : Check if cancel button is clicked on a dialog

node.js - 如何在node.js中使用ejs使用特定文件夹中的每个图像?

javascript - 在 nwjs (node-webkit) 中将数据从 nodejs 传递到 angular 的正确方法

jquery - 如何覆盖提交按钮并收集表单数据

javascript - 可能的?记录嵌入 YouTube 视频的播放次数

javascript - 可以使用正则表达式来比较和匹配单词集吗?

javascript - 如何在没有 Node.js/NPM 的情况下将我的 Web 应用程序转换为 Angular 4

javascript - 序列化不发送表单中的所有数据

android - 如何阻止 "Go"按钮被替换为 "Next"- Chrome Android 浏览器应用程序