CORS Helper —— 本地联调用，一键放行跨域
========================================

【装】
1. 把这个压缩包解压到一个固定位置（比如 D:\tools\cors-helper）
   别解压到桌面临时目录，回头清桌面就找不到了
2. Chrome / Edge 地址栏打开 chrome://extensions（Edge 也能用 chrome://extensions）
3. 右上角打开「开发者模式」
4. 点「加载已解压的扩展程序」，选中刚解压出来的那个文件夹
5. 装好后会**自动弹出一个设置页**（welcome.html），不用去工具栏找图标

【图标去哪了】
MV3 扩展装完，图标通常不会直接出现在工具栏上，而是被收进右上角那个 🧩 形状的
「扩展」拼图里。三种办法打开设置：
  · 看工具栏上有没有本扩展的图标，有就直接点
  · 点 🧩 拼图 → 找到 CORS Helper → 点旁边的图钉把它固定到工具栏
  · 走 chrome://extensions → 找到本扩展 → 点「Service worker」那个链接

【用】
装好即生效，**什么都不用配**：
  · 扩展会**自动按你当前所在页面的地址**放行（不用手填来源）；
  · 并且**允许携带 Cookie**（登录态照常带，不需要你做任何设置）。

设置页上显示的那个**页面地址**就是它实际写进响应头的一行，
**必须和你地址栏里的地址完全一致**，否则接口照样被拦。
注意 http://localhost:5173 和 http://127.0.0.1:5173 对浏览器来说是**两个不同的来源**
—— 你从哪个地址打开工具页，扩展就按哪个放行；换了地址，切回那个标签页即可。

Cookie 由浏览器按**目标接口域名**自动附加 —— 那个域本来没有 Cookie 就不会多发任何东西，
所以"默认带上"不需要任何开关，也谈不上副作用。

想关掉：把设置页里的「启用」取消勾选即可（恢复接口原本的跨域状态）。

注意：**Authorization: Bearer … 不算凭据**，它是普通请求头，填了就发，跟开关无关。

【装了却还是报跨域？按顺序对一遍】
1. chrome://extensions 里它得是**已启用**（开关是蓝的，卡片上没有红色「错误」）
2. 换过版本 / 改过源码之后，必须点一次 **↻ 重新加载**；不点就还在跑旧代码
3. 别装两个副本、也别再开别的 CORS 插件（规则会互相打架）
4. 打开扩展看它显示的页面地址，和你地址栏的地址对一下（localhost 与 127.0.0.1 是两个）
5. 改完扩展后回到工具页**刷新再发一次**

【它做什么 / 不做什么】
做  ：在响应回到浏览器之前，给 XHR / fetch 的响应补上允许跨域的那几行响应头
      （Access-Control-Allow-Origin = 你的页面地址、Allow-Credentials: true、
       Allow-Headers / Allow-Methods 给全）。
      并且**只改「从你正在看的这个页面发出去」的请求**（按发起方域名限定），
      你同时开着的别的网站完全不受影响 —— 不用再担心"装了它会不会把别的站点搞坏"。
不做的：
  · 不改你的请求、不做代理转发 —— 流量仍是浏览器与服务器直连
  · 不管域名解析（DNS）、端口连通、HTTPS 证书 —— 这些在它够得着的层之下
  · 不碰页面自身的 HTML / CSS / JS 加载
  · 不设 Access-Control-Max-Age —— 免得预检结果被缓存十分钟，
    让你「改了配置、关了开关，刷新还是老样子」

【什么情况它也没用】
  · 接口对 OPTIONS 预检回 404 / 405：浏览器要求预检必须是 2xx，而它只能改响应头、
    改不了状态码 —— 这种只能换接口地址，或让后端放行 OPTIONS。
  · 纯网络层失败（DNS 不通、连不上、证书错）：它够不到网络这一层。
  · 别人访问你部署的站点：扩展只装在你自己浏览器、只对你这台电脑生效，
    你不可能要求每位访客都先装扩展。那种情况只能让接口方（或网关）配响应头。

【注意】
· 这类扩展读得到你的请求和鉴权头 —— 只装自己写的或信得过的，用完就卸掉。
· 它只装在你自己的浏览器里，只对你这台电脑生效。
· 规则只作用于 XHR / fetch，不去动页面自身的响应，把影响面压到最小。
· 源码全在本文件夹里，可以自己看；改完在扩展卡片上点刷新就能重新加载。
