Server-side: 必要な最小 CORS 設定(Node.js 例)
このコードを server.js として使い、必ずレスポンスに Access-Control-Allow-Origin を含めてください。以下は最小限です:
// server.js (最小サンプル — CORS を有効にすること)
// npm i express node-fetch
const express = require('express');
const fetch = require('node-fetch');
const app = express();
app.get('/fetch', async (req, res) => {
const url = req.query.url;
if (!url) return res.status(400).send('missing url');
try {
const r = await fetch(url, { redirect:'follow' });
const contentType = r.headers.get('content-type') || 'application/octet-stream';
const body = await r.buffer();
// *** 重要: CORS ヘッダを返すこと ***
res.set('Access-Control-Allow-Origin', '*');
res.set('Access-Control-Allow-Methods', 'GET,OPTIONS');
res.set('Access-Control-Allow-Headers', 'Content-Type');
// 安全上、本番では Referer/Cookie 等を転送しないこと
res.set('Content-Type', contentType);
res.send(body);
} catch(err){
console.error(err);
res.status(502).send('upstream fetch error');
}
});
app.listen(3000);
重要: 本番では Access-Control-Allow-Origin: * は慎重に扱ってください。認証や許可制御を導入することを強く推奨します。