特定の値で Set-Cookie ヘッダーを上書きする
特定の `Set-Cookie` ヘッダーを取得し、特定の値で更新します。
export default { async fetch(request) { // オリジンからのレスポンスを受け取る const response = await fetch(request);
// レスポンスヘッダーを修正するための新しい Headers オブジェクトを作成 const newHeaders = new Headers(response.headers);
// すべての Set-Cookie ヘッダーを取得 const cookies = response.headers.get("Set-Cookie"); if (cookies) { // Set-Cookie ヘッダーを分割 const cookieArray = cookies.split(/,(?=\s*[^;]+=[^;]+)/g); const updatedCookies = cookieArray.map((cookie) => { // 例えば、通貨の値を GBP に置き換える if (cookie.trim().startsWith("currency=")) { return cookie.replace(/currency=[^;]+/, "currency=GBP"); } return cookie; });
// 既存の Set-Cookie ヘッダーを削除 newHeaders.delete("Set-Cookie");
// 更新された Set-Cookie ヘッダーを個別に追加 updatedCookies.forEach((cookie) => { newHeaders.append("Set-Cookie", cookie.trim()); }); }
// 更新されたヘッダーを持つ修正されたレスポンスを返す return new Response(response.body, { status: response.status, headers: newHeaders, }); },};