CORS 请求头检查器

免费在线 CORS 请求头检查与分析工具。验证 Access-Control 响应头,诊断跨域问题,检验预检请求配置。

Analysis

Access-Control-Allow-Origin: * — All origins allowed.
Method GET is allowed.
Allowed headers: Content-Type, Authorization
Preflight cache: 86400 seconds

什么是 CORS 请求头检查器?

跨域资源共享(CORS,Cross-Origin Resource Sharing)是一种浏览器安全机制,用于控制一个域名的网页如何请求不同域名的资源。当 https://myapp.com 上的前端应用尝试从 https://api.example.com 获取数据时,浏览器会检查服务器的 CORS 响应头,以确定是否允许该请求。CORS 请求头检查器分析 API 服务器的响应头,评估它们是否正确允许来自您指定来源、HTTP 方法和自定义请求头的跨域请求。它能识别常见的配置错误,如缺少 Access-Control-Allow-Origin 头、通配符来源与凭据组合使用、以及不允许的方法或请求头等问题。

如何使用 CORS 请求头检查器

  1. 在'请求来源'字段中输入前端应用的来源地址(如 'https://myapp.com')。
  2. 选择应用进行跨域请求时使用的 HTTP 方法。
  3. 将 API 服务器的响应头粘贴到'响应头'文本区域中。每行输入一个头部,格式为 'Key: Value'。
  4. 查看下方的分析结果。绿色对勾表示检查通过,黄色警告提示潜在问题,红色叉号表示阻止性问题。

常见使用场景

  • 调试 CORS 错误 — 当浏览器控制台显示 'Access to fetch has been blocked by CORS policy' 时,将响应头粘贴到此处,快速识别缺失或配置错误的内容。
  • 服务器配置验证 — 在部署 API 变更前,验证 CORS 响应头是否正确允许预期的来源、方法和自定义请求头,同时不会过度开放权限。
  • 安全审查 — 审计 API 的 CORS 配置,确保遵循安全最佳实践——不将通配符来源与凭据一起使用、适当的预检缓存以及最小化的允许请求头。
  • CORS 教学与学习 — 通过尝试不同的 CORS 头部组合并实时查看分析结果,深入理解不同配置如何影响浏览器行为。

FAQ

什么是 CORS 预检请求?
预检请求是浏览器在实际请求之前自动发送的 OPTIONS 请求,当使用非简单方法(PUT、PATCH、DELETE)、自定义请求头或某些内容类型时会触发。服务器必须响应适当的 Access-Control-Allow-* 头部。Access-Control-Max-Age 头部控制浏览器缓存预检结果的时长。
为什么不能将 Access-Control-Allow-Origin: * 与凭据一起使用?
当请求包含凭据(Cookie 或 HTTP 身份验证)时,浏览器要求服务器在 Access-Control-Allow-Origin 中返回确切的来源地址,而不是通配符 *。这可以防止任何网站向您的 API 发起带身份验证的请求。您必须回显特定的请求来源。
哪些是不需要预检的'简单请求'?
简单请求使用 GET、HEAD 或 POST 方法,且仅包含标准请求头(Accept、Accept-Language、Content-Language、Content-Type 的值为 application/x-www-form-urlencoded、multipart/form-data 或 text/plain)。任何其他组合都会触发预检 OPTIONS 请求。
这个工具会发送实际请求来测试 CORS 吗?
不会,本工具执行纯离线分析。您粘贴响应头,工具会根据您指定的来源和方法进行评估。要获取实际的响应头,您可以使用浏览器开发者工具的网络标签页、带 -I 参数的 curl 命令或任何 HTTP 客户端。

相关工具