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

使用Express JS路由将POST重定向到POST

晏和风
2023-03-14
问题内容

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


问题答案:

我不确定我是否正确理解您的问题。据我了解,您希望将POST请求/重定向到/login棘手的POST请求。

通常,您通过发送301永久移动或302找到的HTTP状态代码来进行重定向。它们通常在实践中都好像是303 See
Other,并且发出GET请求一样。请参阅Wikipedia上的HTTP状态代码列表:

这是行业实践与标准相矛盾的一个例子。HTTP / 1.0规范(RFC
1945)要求客户端执行临时重定向(原始描述短语为“临时移动”),但是流行的浏览器使用303的功能实现了302。因此,HTTP /
1.1添加了状态代码303和307,以区分这两种行为。但是,某些Webhtml" target="_blank">应用程序和框架使用302状态代码就像使用303。

创建了307临时重定向(自HTTP / 1.1起)以解决此问题,不允许更改HTTP方法-因此从POST重定向仍应为POST-请参阅Wikipedia:

在这种情况下,应使用另一个URI重复该请求;但是,将来的请求仍应使用原始URI。与历史上实现302的方式相反,在重新发出原始请求时不允许更改请求方法。例如,应使用另一个POST请求重复POST请求。

据我所知,浏览器应该在进行此类重定向之前警告用户。我不知道这在实践中如何运作。我不会依靠它,因为它充其量只会使用户烦恼,甚至根本无法工作。

我的建议是更改此:

app.post('/login', function (req, res) {
  // logic
});

对此:

function loginHandler(req, res) {
  // logic
}
app.post('/login', loginHandler); 
app.post('/', loginHandler);

或类似的东西,使用正则表达式:

app.post(/^\/(?:login)?$/, function (req, res) {
  // logic
});

这样,将代替相同的处理程序用于这两个路由。这将更快,更强大,因为那样您就不必依赖重定向工作了,根本就没有重定向。



 类似资料:
  • 是否可以将用户重定向到Laravel中的POST路由。我有两张表格。表格一发送到包含表格二的路线,表格二发送到最终路线,然后进行验证。如果

  • 英文原文:http://emberjs.com/guides/routing/redirection/ 过渡与重定向 在路由中调用transitionTo或者在控制器中调用transitionToRoute,将停止当前正在进行的过渡,并开启一个新的,这也用作重定向。transitionTo具有参数,其行为与link-to助手相同。 如果过渡到一个没有动态段的路由,路由的model钩子始终都会运行。

  • 问题内容: 我有一些路线的角度应用程序,例如: 使用angular的html5路由模式,当您从应用程序内单击指向链接的链接时,这些链接可以正确解决,但是当您进行硬刷新时,这些链接当然会出现404错误。为了解决这个问题,我尝试实现基本的htaccess重写。 这适用于角度请求,但是当我尝试在我的域内加载脚本或进行ajax调用时,例如: 该脚本不会加载-它的请求被重定向,并且它尝试加载index.ht

  • 我正在尝试使用react router(版本^1.0.3)做一个简单的重定向到另一个视图的操作,我只是觉得有些累。 我只需要将用法发送到“/login”,就这样。 我能做什么? 控制台中的错误: 未捕获的引用错误:未定义PropType 用我的路线归档

  • 问题内容: 我已经用Angular编写了Web应用程序的一部分。为了确保覆盖所有路由,我想在中添加一个属性,以便将无效路由返回到不使用Angular的Web应用程序的根目录。 我试过了: 但是很明显,这仅在URL的Angular控制部分中进行路由,因此用户将被重定向到URL ,而不是,我希望他们进入该URL 。 我已经解决了这一问题,方法是使用空白部分作为“404”页面,然后使用该对象将控制器重定