Postman中手动设置的Cookie怎么没随请求发送?
在测试跨域接口时需要模拟登录态,我手动在Postman的Cookies标签里添加了domain.com域的cookie,但实际发送请求时header里没有带上它。
之前用前端代码设置过类似逻辑:
document.cookie = "auth_token=123; domain=api.domain.com; path=/; Secure"
但Postman里设置时没提示错误,状态栏显示已保存。试过勾选”Send cookies with origin”也没用,请求还是被服务器判定为未登录。
现在很困惑,Postman设置Cookie时需要特别注意哪些配置?域名格式是填”.domain.com”还是”api.domain.com”?有没有什么隐藏的配置开关没打开?
api.domain.com,不要加点前面的那种 (.domain.com)。另外确保请求的URL确实匹配这个域名和路径。省事的话直接删掉Cookies标签页的所有设置,然后在Headers里手动加个Cookie: auth_token=123,一样能用。1. 域名要填完整的确切值,比如
api.domain.com,不要带点前面的那种(即不是.domain.com)。Postman不像浏览器那样处理泛域名。2. 确保请求的URL和Cookie设置里的域名完全匹配,包括协议(http/https)。如果请求的是
https://api.domain.com,那Cookie的域名也必须是api.domain.com且带Secure标志。3. "Send cookies with origin"这个选项只对同域有效,跨域的话没用。你得确保Postman的
cookie jar功能开启,在设置里找"Manage Cookies"相关的开关。4. 最重要的一点:Postman不会自动把Cookies加到跨域请求头里,即使你手动设置了。你需要手动检查每次请求是否正确带上Cookie。可以在预览请求里看看Headers部分有没有
Cookie: ...这一行。如果还是不行,直接暴力一点,在请求头里手动加上
Cookie: auth_token=123,这样最靠谱。毕竟Postman是个工具,有时候不如我们自己动手来得直接。最后吐槽一句,Postman的Cookie管理比前端document.cookie还让人头大,还不如老老实实用代码控制呢。