こんにちは、やまぱんです。
補足コメントや質問、いいね、拡散、是非お願いします🥺!
間違ってたら優しく教えてください!
CORS とは
CORS(Cross-Origin Resource Sharing、オリジン間リソース共有)は、あるオリジンで動作しているウェブアプリケーションに、異なるオリジンにある選択されたリソースへのアクセス権を与えるための仕組みです
CORSの利点
クロスオリジンリクエストの許可
異なるオリジン間での通信を可能にします。これにより、あるウェブサイトが別のウェブサイトのリソースを利用することができます。
クロスオリジンリクエストを許可することで、異なるドメインのウェブページからデータを取得したり、ウェブサービスにアクセスしたりすることが可能になります。
オリジン単位のアクセス制御を提供
特定のオリジンからのリクエストのみを許可することができます。これにより、不必要なアクセスを防ぐことができます。
後方互換性
CORSは既存のウェブサイトでも動作します。つまり、CORSを使用しない既存のサイトの性能劣化はほとんどありません。
セキュリティ
CORSは、セキュリティ上問題のないサイトがCORSの元でも安全に動作することを保証します。
具体的な例として、あるウェブサイトが別のウェブサイトのAPIを利用したい場合、そのAPIのサーバーはCORSを設定して、そのウェブサイトからのリクエストを許可する必要があります。
これにより、ウェブサイトは異なるオリジンのAPIを安全に利用することができます3。このように、CORSはウェブの機能を大幅に拡張し、ウェブアプリケーションの可能性を広げます。
CORS の設定例
簡単な例を示すと、以下のようになります:
- サーバー側のCORS設定(例: Express.js)
const express = require('express');
const app = express();
// CORSミドルウェアを使用してすべてのオリジンからのリクエストを許可する
app.use((req, res, next) => {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE');
res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization');
next();
});
// サーバーのエンドポイント
app.get('/data', (req, res) => {
res.json({ message: 'This is a response from the server!' });
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});