You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Express JS中res.redirect()无法正常工作问题求助

问题原因与解决方案

核心问题

你遇到的不是Node或Windows更新的问题,而是Postman的重定向行为+HTTP状态码默认规则导致的:

  • Express 的 res.redirect("/") 默认返回302 Found状态码。按照HTTP规范,302允许客户端保留原请求方法(这里是POST)访问重定向目标,而Postman默认配置会严格保留原请求方法。你的/路由只注册了GET方法,因此收到POST请求时就返回Cannot POST /的404错误。
  • 之前正常要么是Postman旧版本默认会将302重定向的请求方法改为GET,要么是当时的测试场景存在差异。

解决办法

1. 强制指定303状态码(推荐)

HTTP 303 See Other明确要求客户端必须用GET方法访问重定向后的资源,修改重定向代码即可:

app.post("/me", function (req, res) {
  res.redirect(303, "/");
});

这样无论客户端配置如何,都会用GET请求/,匹配你已有的GET路由。

2. 修改Postman的重定向配置

在Postman当前请求的Settings面板中:

  • 开启"Automatically follow redirects"选项
  • 关闭"Preserve original HTTP method"选项
    调整后Postman遇到302重定向时会自动将请求方法改为GET,即可正常访问/的GET路由。

3. 临时 workaround(不推荐)

就是你当前使用的给/添加POST路由的方式,但这不符合HTTP重定向的规范,只是临时绕开问题。

内容的提问来源于stack exchange,提问作者Taylor Lepper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 14:00:34