跳到主要内容

CORS 头构建器

从结构化字段构建标准 CORS 响应头 — Access-Control-Allow-Origin、-Methods、-Headers、-Credentials、-Max-Age 和 -Expose-Headers — 准备粘贴到服务器响应中。

输入

允许访问资源的源。使用 * 允许所有源 — 但不能与凭证组合。

逗号分隔的 HTTP 方法列表,允许用于跨域请求。

逗号分隔的请求头列表,浏览器可以发送。

浏览器可以缓存预检结果的时间(以秒为单位)。留空可省略。

可选。逗号分隔的响应头列表,JavaScript 可以读取。

输出

生成的 CORS 头

每行一个头 — 直接粘贴到服务器响应配置中。

这对您有帮助吗?

使用此工具的更多方式

REST API

curl -X POST https://api.iotools.cloud/v1/tool/cors-headers-builder \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "origin": "https://example.com",
    "methods": "GET, POST",
    "headers": "Content-Type, Authorization",
    "allowCredentials": "true",
    "maxAge": "86400",
    "exposeHeaders": ""
  }'

替换成您账户中的密钥。工具的字段即为请求体——没有额外包装。

让 AI 代理执行

Use the IOTools `cors-headers-builder` tool (CORS Headers Builder) on this input:

YOUR_INPUT_HERE

将此粘贴给任何已连接 IOTools MCP 服务器的代理,再加上您的输入内容。

嵌入式小组件

<iframe
  src="https://iotools.cloud/embed/cors-headers-builder/"
  width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
  title="CORS 头构建器 — iotools.cloud"
  sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
  allow="clipboard-write"
  style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>

把它放到您自己的页面上——免费,无需密钥,只需保留一个反向链接。

每次 API/MCP 调用费用5 积分起
需要更多积分?查看定价

也可通过

使用指南

什么是 CORS 头构建器?

跨源资源共享(CORS)是浏览器用来决定在一个源上运行的网页(https://app.example.com)是否允许向另一个源的服务器发送请求(https://api.example.com)的机制。默认情况下,浏览器会阻止这些请求 — 服务器必须通过发回特定的 Access-Control-* 响应头集来选择允许。这个工具从一些结构化字段构建这些头,所以你不需要记住确切的头名称、逗号分隔规则,或让人困惑的 true/* 特性。

如何使用

  1. 设置允许的源 — 要么是一个特定的源如 https://example.com,要么是 * 允许任何网站(仅在凭证关闭时有效)。
  2. 列出 API 接受的允许的方法允许的头,用逗号分隔。
  3. 如果请求需要携带 cookies 或 Authorization 头,切换允许凭证开启 — 这会强制你使用特定源而不是 *
  4. 设置 Max-Age 来控制浏览器缓存预检 OPTIONS 响应的时间,还可以列出暴露的头,用于客户端 JavaScript 需要读取的任何自定义响应头。
  5. 生成的 CORS 头框会自动更新 — 将其复制到服务器响应中,或作为文本文件下载。

每个头的作用

  • Access-Control-Allow-Origin — 哪个源可以读取响应。这是实际解锁跨域访问的头;没有它,浏览器会阻止响应,不管其他设置。
  • Access-Control-Allow-Methods — 服务器从跨域请求中接受的 HTTP 方法,在响应预检 OPTIONS 请求时发送。
  • Access-Control-Allow-Headers — 跨域客户端可以设置的请求头(例如 Content-TypeAuthorization)。
  • Access-Control-Allow-Credentials — 必须是字面字符串 true,浏览器才会向请求页面暴露 cookies 和 HTTP 认证。它的存在也需要特定的 Allow-Origin,从不是 *
  • Access-Control-Max-Age — 浏览器在发送另一个 OPTIONS 请求前可以缓存预检结果的秒数。较高的值意味着较少的预检,但权限更改的推出更慢。
  • Access-Control-Expose-Headers — 默认情况下,JavaScript 只能读取一小组"安全"响应头。在这里列出任何自定义头(例如 X-Request-Id)以通过 fetch/XMLHttpRequest 使其可读。

常见问题

为什么我不能将 * 与凭证一起使用? 这是浏览器的一个有意的安全限制。如果 Access-Control-Allow-Credentials: true 被允许与通配符源一起使用,世界上任何网站都可以使用已登录用户的 cookies 向你的 API 发送认证请求。浏览器拒绝尊重这种组合 — 这个工具会在你部署它之前标记它。

什么触发预检(OPTIONS)请求? 简单请求 — GETHEAD 或带标准内容类型的 POST — 直接发送到服务器。其他任何情况(PUT/DELETE/PATCH 方法、自定义头如 Authorization,或 JSON Content-Type)会使浏览器先自动发送预检 OPTIONS,检查 Access-Control-Allow-* 头,然后才发送真实请求。

我需要 Access-Control-Expose-Headers 吗? 仅当你的前端 JavaScript 读取超出默认安全列表的响应头时(Cache-ControlContent-LanguageContent-TypeExpiresLast-ModifiedPragma)。分页头、请求 ID 和速率限制计数器是需要它的常见情况。

我可以允许多个特定源吗? CORS 每个响应中的 Access-Control-Allow-Origin 只允许一个静态值。要支持多个已知源,你的服务器需要检查传入的 Origin 请求头是否与允许列表匹配并动态回显匹配的 — 这个工具一次为一个源构建头块。

隐私

这个工具完全在你的浏览器中运行。你输入的源、方法和头永远不会发送到或存储在我们的服务器上。

corshttp headercross-originaccess-control-allow-originpreflightweb developmenthttp

喜欢这些工具?去掉广告吧。

一次性付款即可永久移除您账户中的所有广告。无需订阅,不追踪。