当前位置: 首页 > 面试题库 >

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

黄扬
2023-03-14
问题内容

我想从一个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



 类似资料:
  • 我正在制作一个包含Node.js、Express和EJS的应用程序,在按下一个按钮后,它会将您重定向到一个不同的页面(例如从localhost:3000/转到localhost:3000/about)。post请求被服务器接收,因为'post request'被记录到服务器端控制台,但是我没有被重定向,没有错误消息或任何东西。 服务器: 客户:

  • 问题内容: 因此,我有一个登录页面(’/’)。此页面上是带有提交按钮的用户名和密码的登录表单。我有加载页面的app.get和一个app.post来接收表单的参数。但是,我的目的是要有一个app.post(’/ login’,function(req,res){// logic}); 没有/ login路由或页面要加载,这只会容纳登录本身的逻辑(验证用户名等)。是否有一种简单的方法来使帖子从’/’重

  • 我有一个网页,这是一个邮政路线。这个页面有一个删除按钮,可以路由到另一个POST路由,在这里我删除指定的数据库行并重定向回第一个页面。 问题是,当我使用任何back()或reway()函数时,它们似乎会产生对上一个URL的GET请求。但上一页是仅限POST页。 如何将POST请求和POST数据重定向回?

  • 问题内容: 我一直在尝试通过正在处理的node.js项目来设置HTTPS。对于该示例,我基本上遵循了node.js文档: 现在,当我做 我懂了 如预期的那样。但是如果我这样做 我懂了 回想起来,这样做似乎很明显,但是与此同时,最终访问我项目的人不会键入 https :// yadayada,我希望从点击起就将所有流量都设为https网站。 我如何获得节点(以及Express,因为我正在使用的框架)

  • 问题内容: 我需要通过POST请求将用户重定向到外部站点。 我发现的唯一选择是通过JavaScript提交表单。 有任何想法吗? 问题答案: 你的意思还不太清楚,所以让我们来看一些情况: 用户应将表格过帐到你自己以外的服务器上 简单,只需将目标指定为表单操作即可: 成功提交POST后应重定向用户 像往常一样轻松地接受和处理POST数据,然后使用或重定向标头进行响应。 用户应将数据发布到你的服务器,

  • 问题内容: 我想将所有不匹配的URL重定向到我的主页。就是 有人去或-我想将他们重定向到 显然,我不想干扰我的有效网址。 那么,是否可以使用一些通配符匹配器将请求重定向到这些无效的url? 问题答案: 您可以在Express链中插入“全部捕获”中间件作为最后一个中间件/路由: 我使用这样的设置来生成自定义页面。