html - 通过 app.post 呈现的页面出现 `Confirm Form Resubmission` 问题( '/' ,在expressjs中

标签 html node.js rest express

html 包含

form(name="Form", action="/", method="post")
  button(type='submit') submit

Express 服务器包含:

app.post('/', function(req, res){   
  res.render('home', {user: req.body});
});

正如预期的那样,home.jade 在浏览器中呈现。但是,当我在 http://localhost:3000 刷新 home.jade 文件时,它要求确认表单重新提交,我想摆脱这 - 确认重新提交表单!

home.jade 文件是包含简单文本的简单文件。

最佳答案

问题实际上并不是由您的代码引起的,而是当您收到来自 POST 的响应时,浏览器想要再次发帖。解决此问题的常见方法是重定向到同一页面。

app.post('/', function(req, res){   
  res.redirect('/');
});

现在,当您刷新时,浏览器将重新获取 GET '/'。

更新以反射(reflect)更新的问题

要呈现在重定向页面上发布的数据,可以使用 session 。

app.use(express.cookieSession());

app.post('/', function(req, res){
  req.session.user = req.body;
  res.redirect('/');
});

在 GET '/' 的中间件中,您必须确保使用该参数

app.get('/', function(req, res){
  res.render('home', { user: req.session.user });
});

关于html - 通过 app.post 呈现的页面出现 `Confirm Form Resubmission` 问题( '/' ,在expressjs中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18614986/

相关文章:

node.js - 如何在 azure devops 管道中的 docker 镜像中嵌入环境变量?

javascript - 使用 HTTP-Basic 身份验证的 Angular 6 HTTP Get 请求

php - 为什么我的 div 显示在错误的位置

html - 使用 % 获取父维度的 css 问题

html - 使用表格而不是 div 会给最终用户带来什么真正的问题?

java - 使用 RestTemplate (POST) 使用 SOAP 服务抛出 405 Method Not allowed

swift - 将视频(和属性)上传到 vimeo 的 RESTful 机制

html - 为什么我的 div 在页面上有文本时会向下移动,我该如何解决这个问题?

java - 跨应用程序的多个实例维护 StringBuffer 类中的日志

javascript - 如何从对象数组中获取值