Postman中如何使用pm.sendRequest发送不带任何Cookie的请求
问题原因
Postman默认会自动为请求附加对应域名下已存储的Cookie,你手动在header中设置Cookie字段不会覆盖自动生成的内容,只会做拼接,因此会出现重复的sessionid、无法清空Cookie的问题。
方案1(推荐,适配Postman v8.0+版本)
直接在pm.sendRequest的请求配置中添加disableCookieProcessing: true参数,即可完全禁用当前请求的自动Cookie处理逻辑,不会附加任何存储的Cookie。
修改后的代码如下:
function get_and_set_jwt() { let base_url = pm.environment.get("BASE_URL") pm.sendRequest({ url: base_url + '/api/auth/', method: 'POST', // 新增该行,禁用当前请求的自动Cookie处理 disableCookieProcessing: true, header: { 'content-type': 'application/json' }, body: { mode: 'raw', raw: JSON.stringify({ email: pm.environment.get("USER_EMAIL_ADDRESS"), password: pm.environment.get("USER_PASSWORD") }) } }, function (err, res) { let jwt = res.json().token postman.setEnvironmentVariable("JWT", jwt) }); } get_and_set_jwt();
方案2(适配旧版本Postman)
如果使用的Postman版本不支持disableCookieProcessing参数,可以在发请求前手动清除对应域名下的所有Cookie:
function get_and_set_jwt() { let base_url = pm.environment.get("BASE_URL") // 提取接口对应的域名,有自定义端口可自行调整提取逻辑 const domain = new URL(base_url).hostname; // 先清空对应域名的所有Cookie再发起请求 pm.cookies.jar().removeAll(domain, () => { pm.sendRequest({ url: base_url + '/api/auth/', method: 'POST', header: { 'content-type': 'application/json' }, body: { mode: 'raw', raw: JSON.stringify({ email: pm.environment.get("USER_EMAIL_ADDRESS"), password: pm.environment.get("USER_PASSWORD") }) } }, function (err, res) { let jwt = res.json().token postman.setEnvironmentVariable("JWT", jwt) }); }) } get_and_set_jwt();
额外全局配置参考
如果所有请求都不需要自动携带Cookie,可以直接关闭Postman全局自动Cookie开关:
- 打开Postman设置 → 进入「General」标签 → 关闭「Send cookies automatically」选项即可。
内容的提问来源于stack exchange,提问作者user16237642
相关产品推荐
相关产品推荐

