CORS 测试器

粘贴一个 URL,看看你的浏览器实际会怎样处理它:跨域 `fetch` 能否成功;如果不能,是 CORS 握手的哪一环缺失。随后工具会把同一个 URL 跑过这个 CORX 实例,并给出可以直接粘贴的调用。

探测在你的浏览器里执行。代理请求会经过本实例——受其条款、配额与日志约束,请不要在这里粘贴私有 URL。

测试怎么做的

浏览器最多会用三种方式抓取该 URL:普通跨域请求、携带凭证的同一请求,以及一个带自定义请求头、会触发预检的请求。普通请求被拦截时,还会补一次不透明的 `no-cors` 探测——它读不到内容,但能完成就说明服务器有响应,从而把「缺 CORS header」与「主机不可达」区分开。浏览器刻意不告诉页面请求为何被拦截,所以结论是从这些探测推断出来的,而不是从错误里读出来的。

嵌入是另一个问题

CORS 决定 `fetch` 能否读取响应;页面能否放进 `<iframe>` 由目标的 `X-Frame-Options` 与 CSP `frame-ancestors` 决定,CORX 默认不会剥掉它们。自托管的 key 可以为某个你控制的主机去掉。

嵌入做法

延伸阅读

鉴权细节框架代码示例