响应头会显示在这里
预检请求响应示例会显示在这里
-
| 场景 | Allow-Origin | 备注 |
|---|
四个关键头
Access-Control-Allow-Origin 允许的来源,只能是单个值或 *
Access-Control-Allow-Methods 允许的方法,预检请求必须包含 OPTIONS
Access-Control-Allow-Headers 允许自定义请求头
Access-Control-Allow-Credentials 是否允许带 Cookie,为 true 时 Origin 不能为 *
Access-Control-Allow-Origin 允许的来源,只能是单个值或 *
Access-Control-Allow-Methods 允许的方法,预检请求必须包含 OPTIONS
Access-Control-Allow-Headers 允许自定义请求头
Access-Control-Allow-Credentials 是否允许带 Cookie,为 true 时 Origin 不能为 *
Origin 为 * 时浏览器会拒绝带凭证的请求,这是规范强制的安全限制,不是配置错误。若需要支持凭证,请把 Origin 设为具体域名,并加上 Vary: Origin 让 CDN 按来源分别缓存。
关于本工具
前后端分离后,跨域几乎一定会遇到。浏览器的报错信息往往只写一句「被 CORS 策略阻止」,看不出到底缺了哪个头。这个工具把你需要返回的头一次性列全。
如何使用
填写允许的前端来源,勾选需要支持的请求方法,按需打开凭证开关。工具会输出完整的响应头,以及浏览器发出的 OPTIONS 预检请求应当得到的响应示例。
常见问题
为什么多了个 OPTIONS 请求?当请求带有自定义头、使用 PUT 或 DELETE 等方法,或 Content-Type 非表单类时,浏览器会先发一个 OPTIONS 预检请求,确认服务端允许后才发真实请求。所以 Allow-Methods 里必须包含 OPTIONS。
Access-Control-Allow-Headers 要写全吗?需要。前端每多带一个自定义头(例如 X-Request-Id),就要在允许列表里加上,否则预检会失败。
你可能还想问
Access-Control-Allow-Origin 能写 * 吗?
公开只读接口可以;但携带 Cookie 的请求禁止用 *,必须回显具体来源并加 Allow-Credentials: true,否则浏览器直接拦截。
为什么预检请求(OPTIONS)一直失败?
预检要求服务端对 OPTIONS 返回 2xx 且带上 Allow-Methods、Allow-Headers;自定义头(如 Authorization、X-Token)必须显式列进 Allow-Headers。
CORS 报错是前端问题还是后端问题?
CORS 是浏览器强制的安全策略,根因几乎都在服务端响应头不全;用浏览器开发者工具看 Network 里响应头,缺哪个补哪个。
速查在线工具箱