logo

CORS 预检模拟器

免费在线 CORS 模拟器。填入你的请求与服务器的 Access-Control-Allow 标头,即时看出浏览器会放行还是挡、并指出缺哪个标头。
logo
啪唧开发工坊
CORS 预检模拟器

CORS 预检模拟器

免费在线 CORS 模拟器。填入你的请求与服务器的 Access-Control-Allow 标头,即时看出浏览器会放行还是挡、并指出缺哪个标头。
处理中

关于 CORS

为什么浏览器挡跨源读取

默认情况下,网页只能读取同源的响应。要让网页读取另一个 origin 的响应,服务器必须用 Access-Control-Allow-* 标头主动放行。浏览器负责强制执行:若标头没允许你的 origin,即使服务器有回,浏览器仍挡下读取。

预检与 credentials 规则

非简单请求(自订标头、JSON 主体、或 GET/HEAD/POST 以外的方法)会先送 OPTIONS 预检;服务器必须允许该 method 与标头,实际请求才会发出。当请求带 credentials 时,通配符全部失效:Access-Control-Allow-Origin 必须是明确的 origin(不能是 *),且 Access-Control-Allow-Credentials 必须为 true。这个「精确配对」正是最常见的 CORS 错误。

常见问题

关于这个主题的常见疑问与实用解答。

服务器明明有回,为什么 CORS 还是挡住我的请求?

服务器确实有回,但浏览器因为 Access-Control-Allow-* 标头没允许你的 origin(或 method、标头)而拒绝把响应交给你的网页。本工具会指出到底缺哪个标头。

什么是 CORS 预检?

对非简单请求,浏览器会先送一个 OPTIONS 请求,问服务器这个 method 与标头准不准。只有预检通过,实际请求才会发出。

为什么带 credentials 时 Access-Control-Allow-Origin: * 会失败?

基于安全,当请求带 cookie 或授权时,浏览器禁止使用通配符。你必须回传精确的 origin,并加上 Access-Control-Allow-Credentials: true。

这个工具会发出真的请求吗?

不会。它是纯规则引擎,完全在你的浏览器中运算,不发任何网络请求,你输入的内容也不会离开你的设备。