Postman的Headers标签页不显示Set-Cookie是正常现象,因其被Postman自动剥离并解析存入专用Cookie管理系统,仅在Cookies标签页或通过pm.response.headers.get("Set-Cookie")等脚本方式可获取。

Postman 里 Set-Cookie 不显示在响应 Headers 标签页是正常现象,它只出现在 Cookies 标签页或原始响应头中 —— 直接看 Headers 是找不到的。
为什么在 Headers 标签页看不到 Set-Cookie
Postman 的 Headers 标签页默认只显示「被解析后」的响应头,而 Set-Cookie 是服务器下发的指令,不是客户端发送的请求头,Postman 会把它剥离出常规 headers 列表,转而归入专门的 Cookie 管理系统。
- 即使响应里确实有
Set-Cookie: sessionid=abc123; Path=/; HttpOnly,Headers标签页也不会列出这一行 - 你能在
Console(View → Developer → Show DevTools)里用pm.response.headers.get("Set-Cookie")拿到原始值 - 如果返回了多个
Set-Cookie,get("Set-Cookie")只返回第一个;要用pm.response.headers.all()遍历全部
在哪能真正看到 Set-Cookie 的内容
有两个可靠位置:
- 点击响应区域左上角的
Cookies标签页:这里展示的是 Postman **已解析并存入本地 Cookie 管理器**的 cookie 条目,包括Name、Value、Domain、Path、Expires等字段。但注意:它不显示原始Set-Cookie字符串(比如丢掉了HttpOnly或Secure的原始标记格式) - 在 Tests 脚本里打印:
console.log(pm.response.headers.get("Set-Cookie")),这是最接近原始响应的方式,尤其适合调试多条Set-Cookie或含特殊分隔符的场景
提取 Set-Cookie 并设为环境变量的常见写法
别直接用 split(";")[0] 截取,容易错把 Path= 或 Expires= 当成值的一部分。优先按 cookie 名称提取:
Postman 12.27.7 Windows x64 官方安装包,适用于 API 设计、调试、测试与协作。该系列包含 Enterprise 云端性能测试静态 IP 出口能力,以及接口规范标签管理改进,适合受限网络测试与规范资源组织场景。
- 已知 cookie 名是
sessionid:用pm.response.cookie("sessionid")?.value(推荐,语义清晰、自动处理多条) - 需要原始
Set-Cookie字符串(如转发给其他工具):pm.response.headers.get("Set-Cookie") - 手动解析多条时,用正则更稳:
const match = pm.response.headers.get("Set-Cookie")?.match(/sessionid=([^;]+)/); pm.environment.set("sessionid", match?.[1] || "") - 若服务端返回了
Set-Cookie: XSRF-TOKEN=abc; Path=/; Secure; HttpOnly,而你只要值,pm.response.cookie("XSRF-TOKEN")?.value就够了,不用自己切分
容易忽略的细节
Postman 的 Cookie 管理器默认只对「同域名 + 同路径」的后续请求自动注入 Cookie,但不会自动把 Set-Cookie 中的 Domain 属性用于跨子域匹配 —— 比如响应头是 Set-Cookie: token=123; Domain=.api.example.com,而你请求的是 https://backend.api.example.com,Postman 不一定自动带上,得手动检查 Cookies 标签页里的 Domain 字段是否匹配当前请求域名。
另外,HttpOnly cookie 在前端 JS 里不可读,但在 Postman 的 pm.response.cookie() 方法里照常可取 —— 这是 Postman 自身机制,和浏览器行为不同,别被名字误导。










