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

如何使用非当前Cookie集合通过Fetch API请求页面?

如何通过JavaScript/Fetch发送自定义Cookie集合(排除现有Cookie)

原生Fetch API的限制

原生Fetch API里,credentials参数只有三个选项:include(发送当前域名所有Cookie)、same-origin(仅同域发送Cookie)、omit(不发送任何Cookie)。没办法直接自定义要发送的Cookie列表——浏览器的同源策略和Cookie安全机制会自动带上当前域名的所有有效Cookie,你手动设置的Cookie请求头会被浏览器直接忽略。

通用方案的局限

你提到的「备份-删除-恢复Cookie」方法,确实对Http-Only Cookie无效。因为Http-Only Cookie无法通过JavaScript读取或修改,这种方法只能处理普通的可读写Cookie,覆盖不了所有场景。

Greasemonkey/Tampermonkey用户脚本的可行方案

用户脚本有专属API能绕过浏览器限制,实现自定义Cookie发送:

  • 使用GM_xmlhttpRequest(Greasemonkey和Tampermonkey都支持的核心API),这个API不受浏览器默认Cookie规则约束,允许你手动设置Cookie请求头,完全自定义要发送的内容,不会自动带上现有Cookie。
  • 示例代码:
// ==UserScript==
// @name         自定义Cookie发送请求
// @match        https://你的目标域名.com/*
// @grant        GM_xmlhttpRequest
// ==/UserScript==

GM_xmlhttpRequest({
  method: 'GET',
  url: 'https://你的目标域名.com/目标接口',
  headers: {
    'Cookie': 'key2=anothervalue2' // 这里直接写要发送的Cookie,不会自动带上现有Cookie
  },
  onload: function(response) {
    console.log(response.responseText);
  }
});
  • 注意:必须在脚本的元信息里声明@grant GM_xmlhttpRequest才能用这个API,而且它的跨域规则比原生Fetch灵活,但也要遵守用户脚本的权限设置。

其他替代思路

如果没法用用户脚本,又必须处理Http-Only Cookie的场景,只能靠后端配合:

  • 让后端提供一个专门的接口,接收你要自定义的Cookie参数,然后由后端代为发起请求(相当于反向代理),但这种方案依赖后端支持,不属于前端纯JS的解决办法。

内容的提问来源于stack exchange,提问作者allo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.01 13:42:26