一尘不染

使用Express的Node.js:如何重定向POST请求

node.js

我想从一个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的情况下,如何使重定向工作呢?


阅读 346

收藏
2020-07-07

共1个答案

一尘不染

你可以这样做:

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

它将保留send方法。

供参考,307 http代码规范为:

307临时重定向(自HTTP /
1.1起)在这种情况下,应使用另一个URI重复请求,但是以后的请求仍可以使用原始URI。2与303相比,重新发出原始请求时,不应更改请求方法。例如,必须使用另一个POST请求重复POST请求。

有关更多信息,请参见:http :
//www.alanflavell.org.uk/www/post-
redirect.html

2020-07-07