使用Express的Node.js:如何redirectPOST请求

我想从一个URL请求redirect到另一个'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'); }); 

但是,我不能redirect到'/ test'页面,因为这是一个POST请求。
那么我该怎么做才能使redirect工作,保持“/testing”请求POST?

你可以这样做:

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

这将保留发送方法。

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

307临时redirect(自HTTP / 1.1起)在这种情况下,请求应该与另一个URI重复,但将来的请求仍然可以使用原始的URI。与303不同的是,请求方法在重新发送原始请求时不应该被改变。 例如,POST请求必须使用另一个POST请求重复。

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