You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

axios-cookiejar-support仅保存1个Cookie,如何保存全部Cookie?

axios-cookiejar-support 仅保存部分Cookie的问题解决

问题原因

问题出在tough-cookie的默认配置上:它默认开启了rejectPublicSuffixes(值为true),这个配置会拒绝存储公共后缀域名绑定的Cookie。baidu.com属于公共后缀列表中的域名,所以响应头里带domain=.baidu.com的3个Cookie(BIDUPSID、PSTM、BAIDUID)被判定为无效,未存入CookieJar;只有不带domain属性的BD_NOT_HTTPS(默认绑定请求域名的host-only Cookie)被保存。

解决方法

创建CookieJar实例时,显式关闭rejectPublicSuffixes选项,允许tough-cookie存储公共后缀域名下的Cookie:

'use strict';

const { default: axios } = require('axios');
const { CookieJar } = require('tough-cookie');
const { wrapper } = require('axios-cookiejar-support');

// 关闭公共后缀域名的Cookie拦截
const jar = new CookieJar(null, { rejectPublicSuffixes: false });
const client = wrapper(axios.create({ 
  jar,
  // 开启withCredentials确保Cookie处理逻辑正常触发
  withCredentials: true
}));

client.get('https://www.baidu.com').then((res) => {
  console.log(res.headers, jar);
});

验证方式

修改后可以通过tough-cookie的getCookies方法确认所有Cookie已保存:

client.get('https://www.baidu.com').then(async (res) => {
  const cookies = await jar.getCookies('https://www.baidu.com');
  console.log('全部已保存Cookie:', cookies);
});

内容的提问来源于stack exchange,提问作者Mr. Python

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 11:52:26