`通过app.post('/',以expressjs呈现的页面上确认表单重新提交问题
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
文件它要求确认表格重新提交我想摆脱这一点 – Confirm Form Resubmission
!
home.jade
文件是包含简单文本的简单文件。
这个问题并不是真的是由你的代码引起的,而是由于那些浏览器希望在你收到来自POST的响应时重新发布信息。 解决此问题的常见方法是redirect到同一页面。
app.post('/', function(req, res){ res.redirect('/'); });
现在,当你刷新浏览器将重新获取GET'/'。
更新以反映更新的问题
要呈现redirect页面上发布的数据,可以使用会话。
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 }); });