标准res.redirect('/some/path');
的行为符合预期,并立即将请求重定向到/some/path
,但如果我添加状态代码,例如res.redirect(401, '/some/path')
,我会导航到重定向页面,{{ 1}}没有重定向到express
,而是我得到以下页面:
/some/path
它永远不会重定向。对于我提供的任何状态代码,这都是相同的。
为什么代码指定的重定向工作并不像我期望的那样,如何返回自定义状态代码并重定向到其他路径?
答案 0 :(得分:5)
用于重定向某人的Location
标头的行为仅针对3xx范围内的状态代码和201/202状态定义。由于您将状态代码设置为401,因此忽略标头并仅呈现响应内容。只是发生了Express,其中包含一些很好的文字,说明用户正在重定向,以防重定向很慢。
另外,鉴于401
状态代码的定义,您可能会滥用它。 401
代码是让客户端知道它需要通过给定请求发送附加的认证信息,例如, http://en.wikipedia.org/wiki/Basic_access_authentication,因此您不应该重定向到其他网址。