编辑状态代码时,为什么不能正确表达重定向

时间:2014-02-03 03:06:12

标签: node.js http express

标准res.redirect('/some/path');的行为符合预期,并立即将请求重定向到/some/path,但如果我添加状态代码,例如res.redirect(401, '/some/path'),我会导航到重定向页面,{{ 1}}没有重定向到express,而是我得到以下页面:

/some/path

它永远不会重定向。对于我提供的任何状态代码,这都是相同的。

为什么代码指定的重定向工作并不像我期望的那样,如何返回自定义状态代码并重定向到其他路径?

1 个答案:

答案 0 :(得分:5)

用于重定向某人的Location标头的行为仅针对3xx范围内的状态代码和201/202状态定义。由于您将状态代码设置为401,因此忽略标头并仅呈现响应内容。只是发生了Express,其中包含一些很好的文字,说明用户正在重定向,以防重定向很慢。

另外,鉴于401状态代码的定义,您可能会滥用它。 401代码是让客户端知道它需要通过给定请求发送附加的认证信息,例如, http://en.wikipedia.org/wiki/Basic_access_authentication,因此您不应该重定向到其他网址。

相关问题