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