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

Next.js中TypeError: cookies is not iterable错误求助及解决

解决TypeError: cookies is not iterable错误

问题概述

运行代码时触发TypeError: cookies is not iterable错误,错误定位在response.cookies.set()代码行。

错误调用栈

TypeError: cookies is not iterable
at get [headers map sorted] (node:internal/deps/undici/undici:1844:34)
at node:internal/deps/undici/undici:1865:43
at Headers Iterator.next (node:internal/deps/undici/undici:1108:26)
at toNodeOutgoingHttpHeaders (/Users/rajan/Desktop/programming/Projects/writers/node_modules/next/dist/server/web/utils.js:106:31)
at invokeRender (/Users/rajan/Desktop/programming/Projects/writers/node_modules/next/dist/server/lib/router-server.js:275:122)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async handleRequest (/Users/rajan/Desktop/programming/Projects/writers/node_modules/next/dist/server/lib/router-server.js:447:24)
at async requestHandler (/Users/rajan/Desktop/programming/Projects/writers/node_modules/next/dist/server/lib/router-server.js:464:13)
at async Server. (/Users/rajan/Desktop/programming/Projects/writers/node_modules/next/dist/server/lib/start-server.js:117:13)

相关代码

const tokenData = {
      id: "123",
      username: "username",
      email: "email",
    };

    //Create token
    const token = await jwt.sign(tokenData, process.env.TOKEN_SECRET!, {/* Create token
      expiresIn: "1h",
    });

    
    const response = NextResponse.json({
      message: "Login Success",
      success: true,
    });

    response.cookies.set({
      name: 'token',
      value: token,
      httpOnly: true
    })
    return response;

解决方案

1. 修复代码语法错误

jwt.sign调用存在注释格式错误,导致配置对象不完整,将注释调整为正确格式,确保配置对象结构正常:

// Create token
const token = await jwt.sign(tokenData, process.env.TOKEN_SECRET!, {
  expiresIn: "1h",
});

2. 调整Cookie设置方式

部分旧版本Next.js不支持通过单个对象参数调用cookies.set(),改用分参数传递的方式:

response.cookies.set('token', token, { 
  httpOnly: true 
});

若使用Next.js 13.4+版本,需确认NextResponse导入路径为import { NextResponse } from 'next/server',此时传对象的方式是支持的,但要保证对象字段完整无遗漏。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 21:47:40