教程 · 编程上线
接口跨域被拦:先看预检请求有没有通过
通过浏览器网络面板定位预检失败原因,在服务端正确配置来源、方法和请求头。
前置:前端和后端部署在不同域名或端口,浏览器控制台报跨域错误。
材料:浏览器开发者工具、后端代码、接口文档、部署配置
材料:浏览器开发者工具、后端代码、接口文档、部署配置
步骤
1. 先看有没有 OPTIONS 请求
在网络的 Fetch 面板里找预检请求,看它返回什么状态;没有发出预检,说明是简单请求但响应头缺失,处理方式不同。
2. 服务端允许来源和方法
在响应头里返回允许的来源、方法和请求头,来源要写具体域名;用通配符虽然省事,但带凭证的请求不允许这样配。
3. 带凭证时不能用通配符
需要携带 Cookie 时,来源必须写具体域名,并允许凭证;这两项配错,浏览器会直接丢弃响应,改完清缓存再试。
4. 预检请求返回成功状态
确保 OPTIONS 请求返回 204 或 200,且不被鉴权中间件拦成 401;预检不通过,后面的真实请求根本不会发出去。
5. 生产环境用白名单
把允许的来源配成白名单并按环境区分,不要在生产放开所有来源;上线前用真实域名再测一次,白名单要能随时改。
做完检查
- 预检请求返回 204 或 200
- 响应头里的来源与方法符合实际请求
- 带 Cookie 的请求能正常拿到响应
常见错误
- 在前端加请求头试图绕过跨域
- 来源写成通配符却又要带凭证
- 预检被鉴权中间件拦成 401
相关工具
同类教程
本地能跑线上 404:先查文件名大小写,再查构建产物
定位大小写、扩展名和路径别名导致的资源 404,用构建产物和大小写敏感环境验证修复。
查看 →密钥被打进了前端包:先分清公开变量和私密变量
识别构建时被内联到前端的变量,把密钥移到服务端并轮换已泄露的凭证。
查看 →单页应用刷新就 404:把未知路径回退到 index.html
配置服务器或托管平台的路由回退规则,让前端路由的深链接刷新和直接访问都能正常打开。
查看 →更新时间:2026-10-29 · 平台规则/软件版本会变;操作前保留原件,以实际页面为准。
跨库学习路径
按共同关键词匹配,不是随机推荐;从任务到提示词/教程/项目继续走。