Postman 中如何正确发送带 Cookies 的请求?

书生シ静静 阅读 2

我在用 Postman 调试一个需要登录态的接口,后端返回了 Set-Cookie,但后续请求好像没自动带上 Cookie。我手动在 Headers 里加了 Cookie 字段也不行,是不是哪里配置错了?

我的前端代码是用 React 写的,登录后 axios 请求能正常携带 Cookie,但 Postman 就不行。这是我的请求代码:

axios.post('/api/login', { username, password }, {
  withCredentials: true
}).then(res => {
  // 登录成功,后续请求自动带 Cookie
  return axios.get('/api/profile', { withCredentials: true });
});

Postman 里我已经开了 “Automatically follow redirects” 和 “Send cookies”,但还是 401,到底该怎么设置?

我来解答 赞 3 收藏
二维码
手机扫码查看
1 条解答
程序员爱丹
这个问题我之前踩过坑,Postman 和浏览器的 Cookie 机制确实不太一样。

你开了 "Send cookies" 还是不行,大概率是 Cookie 没存进去。Postman 默认会把 Cookie 存到它自己的 Cookie Jar 里,但有个坑:如果你的响应头里的 Set-Cookie 带了 HttpOnly 或者 Domain/Path 跟你当前请求的 URL 不匹配,它可能就悄悄扔掉了。

先检查一下你登录请求的 Response Headers,看看 Set-Cookie 的 Domain 和 Path 是什么。假设你的接口是 http://localhost:8080/api/login,那 Cookie 的 Domain 应该是 localhost 或者 .localhost,Path 至少得包含 /api。

然后点开 Postman 右侧的 Cookies 链接(在 Send 按钮下面那排),看看 localhost 域名下有没有你的 Cookie。没有的话就是没存进去。

还有一种常见情况,你的后端可能设置了 SameSite=Strict 或者 Secure=true。前者在 Postman 里会有问题,后者要求必须是 HTTPS。开发环境建议后端把 SameSite 设成 Lax 或 None,Secure 先关掉。

如果以上都没问题,试试这一招:在 Postman 的 Settings 里,找到 General 选项卡,确认 "Send cookies" 是开着的,然后把 "Restrict to third-party cookies" 关掉。

实在不行,手动加 Cookie 也行。点开 Cookies 管理,手动添加一个 Cookie,Name 和 Value 填你后端返回的那个。然后在后续请求里,Headers 不要手动加 Cookie 字段,Postman 会自动从 Cookie Jar 里带。

对了,你说手动在 Headers 里加 Cookie 不行,这个我怀疑是你加的格式不对。正确格式是这样的:

Cookie: sessionId=abc123; token=xyz789


多个 Cookie 用分号空格隔开。但这种方式不推荐,太麻烦,还是让 Postman 自动管理比较好。

最后提醒一点,你前端代码里 withCredentials: true 是配合 CORS 用的,Postman 不受同源策略限制,这个配置对它没意义。核心还是确保 Cookie 能正确存进 Cookie Jar。
点赞
2026-03-02 20:00