diff --git a/http/cookie.ts b/http/cookie.ts index b7019ae20d..900d2941be 100644 --- a/http/cookie.ts +++ b/http/cookie.ts @@ -79,7 +79,7 @@ export function getCookies(req: ServerRequest): Cookies { for (const kv of c) { const cookieVal = kv.split("="); const key = cookieVal.shift().trim(); - out[key] = cookieVal.join(""); + out[key] = cookieVal.join("="); } return out; } diff --git a/http/cookie_test.ts b/http/cookie_test.ts index ae99b2707b..4b4e2759d4 100644 --- a/http/cookie_test.ts +++ b/http/cookie_test.ts @@ -21,6 +21,14 @@ test({ req.headers = new Headers(); req.headers.set("Cookie", "igot=99; problems=but..."); assertEquals(getCookies(req), { igot: "99", problems: "but..." }); + + req.headers = new Headers(); + req.headers.set("Cookie", "PREF=al=en-GB&f1=123; wide=1; SID=123"); + assertEquals(getCookies(req), { + PREF: "al=en-GB&f1=123", + wide: "1", + SID: "123" + }); } });