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

Next.js API路由报错TypeError: res.redirect is not a function的解决咨询

解决Next.js API路由中res.redirect is not a function的报错

我之前也碰到过几乎一模一样的问题,给你梳理下原因和可行的解决办法:

报错核心原因

这个错误主要来自两个常见场景:

  • Next.js版本过低:API路由里的res.redirect()这类响应助手方法,是Next.js 12.x版本才正式加入的功能。如果你的项目还在使用11.x或更早的版本,res对象本身就没有这个内置方法,自然会抛出类型错误。
  • 状态码使用不规范:虽然这不是触发报错的直接原因,但你用200状态码来做重定向不符合HTTP规范——重定向必须使用3xx系列的状态码(比如302临时重定向、301永久重定向)。

具体解决方案

方案1:升级Next.js版本(推荐)

如果项目没有版本兼容的限制,直接把Next.js升级到12.x或更高版本即可:

npm install next@latest
# 或者用yarn
yarn add next@latest

升级后,修改你的API路由代码,把状态码改成合法的3xx值:

// pages/api/paiement-accepte.js
export default function handler(req, res) {
  // 使用302临时重定向(可根据需求换成301永久重定向)
  res.redirect(302, "http://www.google.com");
}

方案2:手动实现重定向(无需升级版本)

如果暂时无法升级Next.js,你可以绕过响应助手,手动设置HTTP响应头和状态码来实现重定向:

// pages/api/paiement-accepte.js
export default function handler(req, res) {
  res.writeHead(302, { Location: "http://www.google.com" });
  res.end();
}

两种方案都能解决你的问题,根据自己项目的实际情况选择就行~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 18:27:38