先看Console报错类型:Failed to fetch或No 'Access-Control-Allow-Origin' header表明跨域被拦截;再查Network中对应请求的Request URL、Method及Response Headers,比对CORS头是否缺失或冲突,据此快速定位是前端请求问题还是后端响应配置错误。

你想在宙斯浏览器控制台看到跨域错误时,立刻知道是哪个请求触发的、错在哪一行、该去改前端还是后端——而不是反复刷新页面猜来猜去。
第一步:确认错误是否真实来自当前页面请求
按下 Ctrl + Shift + I(Windows/Linux)或 Cmd + Option + I(macOS)呼出开发者工具 → 切换到 Console 面板 → 刷新页面。如果报错信息中明确包含 Failed to fetch 或 No 'Access-Control-Allow-Origin' header,且末尾带文件名和行号(如 index.js:42),说明是当前页 JS 主动发起的跨域请求被拦截;若只有 Script error. 且无来源标识,则错误来自第三方脚本或扩展,与你写的代码无关。
【Tampermonkey不会为语法错误提供友好提示,全靠Console定位】
第二步:在Network面板锁定具体请求
保持 Console 面板打开状态,切换到 Network 标签页 → 点击左上角垃圾桶图标清空记录 → 再次执行触发跨域的操作(例如点击“提交订单”按钮)→ 在过滤框输入 fetch 或 xhr,收窄请求列表。
逐个点击筛选后的请求条目,在右侧 Headers 标签页检查 Request Method 和 Request URL;在 Response 标签页确认返回内容是否为空或显示 preflight is invalid —— 若是,说明浏览器已发出 OPTIONS 预检但服务器未响应成功。
第三步:比对请求头与响应头差异
方法一:直接看 Console 报错细节
点击 Console 中红色报错行左侧的小箭头展开堆栈 → 找到最上方带有 fetch 或 XMLHttpRequest 的调用行 → 右键 → Reveal in Network panel,自动跳转并高亮对应请求。
方法二:手动验证预检是否通过
在 Network 列表中查找同 URL 的 OPTIONS 请求 → 点击它 → 查看 Response Headers 是否包含:Access-Control-Allow-Origin: * 或指定域名Access-Control-Allow-Methods: GET, POSTAccess-Control-Allow-Headers: Content-Type, Authorization
缺任意一项,预检即失败,后续实际请求永远不会发出。
第四步:快速判断问题归属
① 如果 Network 中压根没有出现对应 URL 的请求(连 OPTIONS 都没发),说明请求被 JS 语法错误、条件逻辑跳过或事件绑定失效拦截在发起前;
② 如果有 OPTIONS 请求但状态码是 404 或 500,问题在服务端路由或中间件未处理 OPTIONS 方法;
③ 如果 OPTIONS 返回 200 但缺少任一 CORS 响应头,或 Access-Control-Allow-Origin 值为 * 却同时设置了 Credentials: true,则必然报错;
④ 如果实际请求(如 POST)返回 200 但 Console 仍报跨域,说明响应体正常但响应头缺失 Access-Control-Allow-Origin —— 这类错误常因 PHP/Java 框架未全局注入 CORS 头导致。


















