# request-header **Repository Path**: jiangchuanshize/request-header ## Basic Information - **Project Name**: request-header - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-21 - **Last Updated**: 2026-06-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # XHR Header Copier 用于在调试 Web 应用时,快速复制**当前标签页**最近一次 **Fetch / XHR**(Chrome `webRequest` 类型为 `xmlhttprequest`)请求里**指定请求头**的完整值(例如 `Authorization: Bearer …` 中的整段值)。 ## 功能说明 - **按请求类型过滤**:只处理异步接口请求(与开发者工具 Network 面板中的「Fetch/XHR」一致),不会把普通文档、图片等导航请求当作「最新一条」。 - **可配置请求头**:在弹窗下拉框中选择 `Authorization`、`Cookie` 或「自定义」并填写头名称,匹配**不区分大小写**。 - **按标签页记录**:每个浏览器标签页各自保存「该页最近一次**带有该请求头**的 XHR」的值,避免多标签互相覆盖。 - **一键复制**:弹窗中展示最近捕获的 URL、时间与头值,点击按钮复制到剪贴板。 - **复制时去前缀 / 提取**:`Authorization` 下可通过「Token 类型」选择 `Bearer`、`Basic`、`Custom` 或「无(完整复制)」;主按钮复制时会从捕获值**开头去掉对应前缀**(如 `Bearer `)。`Cookie` 下支持完整复制、**按 Cookie 名只复制该条 cookie 的值**,或 Custom 自定义前缀;「自定义」请求头支持完整复制与 Custom 前缀。 - **完整复制**:「完整复制」按钮始终复制原始捕获值,不做前缀处理。 - **敏感头可读**:后台使用 `webRequest` 的 `extraHeaders`,以便在允许的前提下读取 `Authorization`、`Cookie` 等敏感请求头(仍受浏览器策略约束)。 ## 加载方法(开发者模式) 1. 打开 Chrome,地址栏输入 `chrome://extensions/` 并回车。 2. 打开右上角的 **「开发者模式」**。 3. 点击 **「加载已解压的扩展程序」**。 4. 选择本仓库根目录(包含 `manifest.json` 的文件夹,例如 `request-header`)。 5. 固定扩展图标(可选):在工具栏拼图图标中找到本扩展,点击图钉以便随时打开弹窗。 **使用步骤简述**:在目标页面发起一次会带上目标请求头的 Fetch/XHR 请求 → 点击扩展图标打开弹窗 → 选择「要捕获的请求头」(`Authorization` / `Cookie` / 自定义)及复制处理方式 → 查看「最近捕获」→ 点击「复制到剪贴板」(去前缀或提取)或「完整复制」。 ## 注意事项 ### 权限与隐私 - 扩展声明了 **`host_permissions: `**,以便在内网、本地 IP、各类测试域名上都能捕获请求头。Chrome 会提示该扩展可读取你访问网站上的网络请求信息,请仅在**自己信任的环境**中安装使用。 - 若只需固定域名,可将 `manifest.json` 中的 `host_permissions` 改为明确列表(例如 `https://api.example.com/*`),减小暴露面并便于审核说明。 ### 行为与限制 - **仅在有该头的请求时更新**:若某次 XHR 未携带你配置的头名,不会用这次请求覆盖上一次已成功捕获的值。 - **会话存储**:捕获结果保存在 `chrome.storage.session` 中,适合临时调试;关闭浏览器后 session 数据可能被清除,长期保存需求需自行改存 `local`/`sync`。 - **后台为 Service Worker**:长时间无事件时可能被休眠,不影响下次请求时重新监听;已写入 session 的数据在弹窗打开时仍可读取。 - **剪贴板**:复制在扩展弹窗内执行;若浏览器或策略限制剪贴板 API,可能复制失败,可重试或检查站点/企业策略。 ### 安全建议 - `Authorization` 等头往往等价于登录凭证,**勿分享给他人、勿提交到代码仓库或截图外泄**。 - 在多人电脑或生产环境谨慎使用;调试结束后可卸载扩展或缩小 `host_permissions` 范围。 ## 项目结构 | 文件 | 说明 | |------|------| | `manifest.json` | Manifest V3 清单与权限 | | `background.js` | 监听 `onBeforeSendHeaders`,筛选 XHR 并写入 session | | `popup.html` / `popup.css` / `popup.js` | 弹窗 UI、配置头名、复制逻辑 | ## 许可证 未附带许可证文件时,默认保留所有权利;如需开源请自行补充 `LICENSE`。