Cookies / response headers
Loader reads request.headers.get("cookie"); action returns a Response whose set-cookie header threads out to the browser. Subsequent loads see the cookie. Hits both the V8 Web-API shim path and bext-server's response-header marshaling.
Cookies the server sees on this request
(no cookies present)
Click "Set", then refresh — you should see demo_session in the cookie list above.
Source
export async function loader({ request }: LoaderArgs) {
const cookies = parseCookies(request.headers.get("cookie") ?? "");
return { cookies };
}
export async function action({ request }: ActionArgs) {
const form = await request.formData();
const op = String(form.get("op") ?? "");
if (op === "set") {
return new Response(JSON.stringify({ ok: true, set: true }), {
status: 200,
headers: {
"content-type": "application/json",
"set-cookie": "demo_session=abc123; Path=/; Max-Age=300",
},
});
}
if (op === "clear") {
return new Response(JSON.stringify({ ok: true, cleared: true }), {
status: 200,
headers: {
"content-type": "application/json",
"set-cookie": "demo_session=; Path=/; Max-Age=0",
},
});
}
return { ok: true };
}