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

Next.js路由处理器报错:responseHeader.getSetCookie is not a function

Next.js 13.5.5 App Router API路由报错:responseHeaders.getSetCookie is not a function

问题详情

使用Next.js 13.5.5的App Router开发时,访问localhost:3000/api路由触发以下错误:

TypeError: responseHeaders.getSetCookie is not a function
at new ResponseCookies (webpack-internal:///(rsc)/./node_modules/next/dist/compiled/@edge-runtime/cookies/index.js:213:47)
at new NextResponse (webpack-internal:///(rsc)/./node_modules/next/dist/server/web/spec-extension/response.js:40:22)

相同代码在StackBlitz环境可正常运行,项目相关信息如下:

项目结构

- src
  - app
    - api
      route.ts
    page.tsx

依赖版本

"dependencies": {
    "react": "^18",
    "react-dom": "^18",
    "next": "13.5.5"
},
"devDependencies": {
    "typescript": "^5",
    "@types/node": "^20",
    "@types/react": "^18",
    "@types/react-dom": "^18"
}

路由代码(route.ts)

import { NextResponse } from 'next/server';

export function GET(request: Request) {
    return NextResponse.json({ sdd: 'sd' });
}

排查与解决方法

1. 清理缓存并重装依赖

本地缓存损坏或依赖安装不完整是常见诱因,执行以下操作:

# 删除缓存与依赖文件
rm -rf .next node_modules package-lock.json yarn.lock
# 重新安装依赖
npm install
# 重启开发服务
npm run dev

2. 验证Node.js版本

Next.js 13.5.x要求Node.js 18.17或更高版本,低版本Node.js可能不支持Headers.getSetCookie()方法:

  • 执行node -v查看本地版本
  • 若版本低于18.17,升级Node.js后重启服务测试

3. 检查Next.js配置

若next.config.js中启用了非必要的实验性特性,可能引发内部API冲突:

  • 暂时注释experimental字段下的自定义配置
  • 重启开发服务验证问题是否消失

4. 确认TypeScript配置

检查tsconfig.json的lib配置,确保包含必要的环境库:

{
  "compilerOptions": {
    "lib": ["dom", "dom.iterable", "esnext"]
  }
}

5. 使用官方启动脚本

确保使用next dev启动开发服务,避免第三方工具或自定义脚本修改运行环境导致的兼容性问题。

环境差异说明

StackBlitz提供的是预配置的干净环境,依赖安装、Node.js版本、缓存状态均处于标准状态,不会出现本地环境中的缓存损坏、版本不兼容或配置冲突问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 13:02:39