コンテンツにスキップ

CORSヘッダーの定義

[クロスオリジンリソースシェアリング (CORS)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) ヘッダーを調整し、プレフライトリクエストを処理します。

// CORSヘッダーの定義
const corsHeaders = {
"Access-Control-Allow-Origin": "*", // * を許可されたオリジンに置き換えます
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", // 必要に応じて許可されたメソッドを調整します
"Access-Control-Allow-Headers": "Content-Type, Authorization", // 必要に応じて許可されたヘッダーを調整します
"Access-Control-Max-Age": "86400", // 必要に応じて最大年齢(秒単位)を調整します
};
export default {
async fetch(request) {
// ヘッダーを修正するためにリクエストのコピーを作成します
const modifiedRequest = new Request(request);
// プレフライトリクエスト (OPTIONS) を処理します
if (request.method === "OPTIONS") {
return new Response(null, {
headers: {
...corsHeaders,
},
status: 200, // プレフライトリクエストに対してOKステータスで応答します
});
}
// 修正されたリクエストをオリジンに渡します
const response = await fetch(modifiedRequest);
// ヘッダーを修正するためにレスポンスのコピーを作成します
const modifiedResponse = new Response(response.body, response);
// レスポンスにCORSヘッダーを設定します
Object.keys(corsHeaders).forEach((header) => {
modifiedResponse.headers.set(header, corsHeaders[header]);
});
return modifiedResponse;
},
};