CORS 测试工具
测试和调试跨域资源共享(CORS)策略和 API 请求
请求设置
配置您的 API 请求以进行测试
示例请求
尝试这些预定义的 API 请求
CORS 信息
关于 CORS 的基本信息
什么是 CORS? CORS(跨域资源共享)是一种机制,允许 Web 浏览器从浏览器中运行的脚本向不同的源(不同的域、协议或端口)发出跨源请求。
关键 CORS 头
Access-Control-Allow-Origin
: 指定允许访问资源的源Access-Control-Allow-Methods
: 指定允许的 HTTP 方法Access-Control-Allow-Headers
: 指定可以使用的 HTTP 头Access-Control-Allow-Credentials
: 指定是否包含凭据(cookie、HTTP 身份验证)
💡 CORS 解决方案
服务器端解决方案
1. Express.js (Node.js):
const cors = require('cors'); app.use(cors({ origin: 'https://example.com', methods: ['GET', 'POST'], credentials: true }));
2. Spring Boot (Java):
@CrossOrigin(origins = "https://example.com") @RestController public class ApiController { ... }
客户端解决方案
1. 使用代理服务器:
// package.json (React) "proxy": "http://localhost:3001"
2. JSONP(仅限 GET):
// 有限但简单的解决方案 fetch('api?callback=handleResponse')
🔧 按环境配置 CORS
Next.js
// next.config.js module.exports = { async headers() { return [ { source: '/api/:path*', headers: [ { key: 'Access-Control-Allow-Origin', value: '*' } ] } ] } }
Nginx
location /api { add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods "GET, POST, OPTIONS"; add_header Access-Control-Allow-Headers "Content-Type, Authorization"; }
Apache
# .htaccess Header always set Access-Control-Allow-Origin "*" Header always set Access-Control-Allow-Methods "GET, POST, OPTIONS" Header always set Access-Control-Allow-Headers "Content-Type, Authorization"
按环境配置 CORS
测试场景
- • 简单请求: 使用 GET 请求测试基本 CORS 行为
- • 预检请求: 使用 PUT/DELETE 方法测试预检请求
- • 自定义头: 使用 Authorization 头测试请求
- • 凭据: 测试带 cookie 的请求
- • 错误处理: 测试失败情况
安全考虑
- • 由于安全风险,使用通配符(*)时要谨慎
- • 最小权限原则:只允许必要的源和方法
- • 凭据限制:包含凭据时只允许特定源
- • 定期审查:定期审查和更新 CORS 策略
CORS 调试技巧
浏览器开发者工具
- • 在网络选项卡中检查 OPTIONS 请求
- • 在控制台中查找 CORS 错误消息
- • 在响应头中验证 CORS 头
有用的工具
- • CORS 测试工具(此工具)
- • Postman(用于 API 测试)
- • curl 命令(用于直接服务器测试)