带有 Express 的 Node.js:如何重定向 POST 请求

新手上路,请多包涵

我想从一个 URL 请求重定向到另一个“POST”请求,如下所示:

 var app = require('express')();

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

app.post('/test', function(req, res) {
  res.send('/test page');
});

app.listen(3000, function() {
  console.log('listenning on port:3000');
});

但是,我无法重定向到“/test”页面,因为它是一个 POST 请求。

那么我应该怎么做才能使重定向工作,保持’/test’请求POST?

原文由 neolicd 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 728
1 个回答

你可以这样做:

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

这将保留发送方法。

作为参考,307 http 代码规范是:

307 Temporary Redirect (HTTP/1.1 起) 这种情况下,应该用另一个URI重复请求,但是以后的请求仍然可以使用原来的URI。2 与303相比,重新发出原来的请求时不应该改变请求方法.例如,必须使用另一个 POST 请求重复一个 POST 请求。

欲了解更多信息,请参阅: http ://www.alanflavell.org.uk/www/post-redirect.html

原文由 ldg 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题