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; },};