无需登录 数据私有 本地保存

CORS 跨域请求测试器 - 分析响应头

12
0
0
0

CORS 跨域请求测试器

发送跨域请求并分析响应头,诊断 CORS 配置是否正确

请求配置
请输入有效的 URL
注意:部分头(如 Origin、Host)浏览器不允许手动设置

输入目标 URL 并发送请求

响应头分析结果将显示在这里
CORS 常见问题与知识
什么是 CORS?

CORS(Cross-Origin Resource Sharing,跨域资源共享)是一种浏览器安全机制,允许服务器通过特定的 HTTP 响应头声明哪些外部源可以访问其资源。它是同源策略的延伸,让跨域请求变得安全可控。

简单请求 vs 预检请求

简单请求:使用 GET/POST/HEAD 方法,仅包含简单头(Accept、Accept-Language、Content-Language、Content-Type 为 text/plain 或 multipart/form-data 或 application/x-www-form-urlencoded),不会触发预检。
预检请求:使用 PUT/DELETE/PATCH 等方法,或 Content-Type 为 application/json,浏览器会先发送 OPTIONS 请求确认服务器是否允许。

Access-Control-Allow-Origin 详解

指定允许访问资源的源。可以是具体的源(如 https://example.com)或通配符 *(允许所有源)。注意:当请求携带凭据(credentials)时,不能使用 *,必须指定具体源。

Access-Control-Allow-Credentials 的作用

指示是否允许发送凭据(Cookies、HTTP 认证、TLS 客户端证书)。设为 true 时,Access-Control-Allow-Origin 不能为 *。前端需设置 credentials: 'include'

常见的 CORS 错误及解决

1. "No 'Access-Control-Allow-Origin' header" → 服务器未配置 CORS。
2. "The value of 'Access-Control-Allow-Origin' must not be * when credentials mode is 'include'" → 凭据模式下 Origin 不能为通配符。
3. "Method not allowed in Access-Control-Allow-Methods" → 预检响应未包含请求方法。
解决:在服务器端正确配置 CORS 响应头,或使用代理服务器。

如何在后端配置 CORS?

不同框架有不同方式:Express 使用 cors 中间件;Spring Boot 使用 @CrossOrigin 注解;Nginx 使用 add_header 指令;Django 使用 django-cors-headers 包。核心都是设置 Access-Control-* 系列响应头。