CORSテスター
Cross-Origin Resource Sharing(CORS)ポリシーとAPIリクエストをテスト・デバッグ
リクエスト設定
テスト用のAPIリクエストを設定してください
リクエスト例
事前定義されたAPIリクエストをお試しください
CORS情報
CORSに関する基本情報
CORSとは? CORS(Cross-Origin Resource Sharing)は、Webブラウザでスクリプトから異なるオリジン(ドメイン、プロトコル、ポート)へのリクエストを許可するメカニズムです。
主要なCORSヘッダー
Access-Control-Allow-Origin
: リソースへのアクセスを許可するオリジンを指定Access-Control-Allow-Methods
: 許可されるHTTPメソッドを指定Access-Control-Allow-Headers
: 使用可能なHTTPヘッダーを指定Access-Control-Allow-Credentials
: 資格情報(クッキー、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ヘッダーを含むリクエストをテスト
- • 資格情報: クッキーを含むリクエストをテスト
- • エラーハンドリング: 失敗シナリオをテスト
セキュリティ考慮事項
- • セキュリティリスクのため、ワイルドカード(*)の使用には注意が必要
- • 最小権限の原則:必要なオリジンとメソッドのみを許可
- • 資格情報の制限:資格情報を含める場合は特定のオリジンのみを許可
- • 定期的な見直し:CORSポリシーを定期的に確認・更新
CORSデバッグのコツ
ブラウザ開発者ツール
- • ネットワークタブでOPTIONSリクエストを確認
- • コンソールでCORSエラーメッセージを確認
- • レスポンスヘッダーでCORSヘッダーを確認
便利なツール
- • CORSテスター(このツール)
- • Postman(APIテスト用)
- • curlコマンド(サーバー直接テスト用)