Postman填了Cookie但请求头未出现,本质是未正确注入:因域名不匹配(需用localhost)、Cookies面板未启用或Headers手动写了Cookie头导致覆盖;服务端不认则需核对Domain、Path、过期时间;会话丢失因Cookies为请求级配置,需开启Automatically persist cookies。

Postman里填了Cookie但请求头没出现
这是最表层的失效现象,本质是Postman根本没把Cookie塞进请求。常见原因有三个:
- 域名不匹配:
127.0.0.1被Postman视为不安全域,默认拒绝发送Cookie;必须改用localhost(并确认hosts文件中存在127.0.0.1 localhost映射) - Cookies面板未启用:右上角眼睛图标必须打开,否则
Cookies按钮不可见、编辑器不生效 - 手动在Headers里写了
Cookie头:这会覆盖Cookies面板逻辑,二者不能共存——删掉Header里的Cookie行,只用面板管理
Postman发出了Cookie但服务端不认
请求里确实带了Cookie: JSESSIONID=xxx,但SpringBoot等后端仍返回“未登录”,说明服务端没查到对应Session。关键检查点:
-
Domain值错误:浏览器设置的Domain=.example.com,你在Postman里填成example.com或www.example.com都可能失败;严格按响应头Set-Cookie中的Domain字段填写(注意开头的点) -
Path不一致:比如服务端下发Path=/admin,你却往/api/user发请求,Cookie不会自动携带;确保请求URL路径以设置的Path为前缀 - 过期时间错乱:粘贴的Cookie含
Expires=...且已过期,Postman会直接丢弃;删掉整条Expires和Max-Age字段再试
同一个Cookie在不同请求间丢失
第一次请求带了Cookie能登录,第二次请求就变401——说明Postman没维持会话状态。这不是Bug,是默认行为:
- Postman的Cookies面板是**请求级**配置,不是全局会话管理;每次新建请求/复制请求,都要重新点开Cookies面板点击
Add,不能依赖“上次填过就还在” - 如果走的是登录接口→获取
Set-Cookie→后续请求自动携带链路,必须开启Automatically persist cookies(Settings → General → Cookies),否则响应里的新Cookie不会写入面板 - 多个环境(Environment)切换时,Cookie不自动同步;切环境后需手动重填或导入
上传文件等特殊请求类型下Cookie失效
POST multipart/form-data上传图片时,即使Cookies面板已填,服务端仍判未登录。这是因为:
- 部分老版本SpringBoot + Tomcat组合对
multipart请求的Cookie解析有bug,会忽略Cookie头;升级到SpringBoot 2.6+可缓解 - 更常见的是前端代码把
sessionId藏在form-data的某个字段里(如token),而非依赖Cookie;此时得去浏览器Network里看真实请求,对比Form Datatab而非Headerstab - Postman里上传文件时若勾选了
Send no body或binary模式误设,会导致整个请求体异常,Cookie虽发出但服务端解析中断
真正卡住人的往往不是“怎么加”,而是“加完之后它到底按什么规则决定带不带”。Domain、Path、Secure、SameSite这些字段不是摆设,Postman会严格比对;而服务端校验Session时,连HttpOnly标志位都可能影响反序列化逻辑。别跳过响应头里的Set-Cookie完整内容,一个字母都不能少。











