Read the value of a specific cookie by name directly on Azion’s global network and use it to shape the response. This is helpful for A/B testing, personalization, or any logic that depends on data your application already stores in the visitor’s cookies.

const COOKIE_NAME = "hubspotutk"
function getCookie(request, name) {
let result = ""
const cookieString = request.headers.get("Cookie")
if (cookieString) {
const cookies = cookieString.split(";")
cookies.forEach(cookie => {
const cookiePair = cookie.split("=", 2)
const cookieName = cookiePair[0].trim()
if (cookieName === name) {
const cookieVal = cookiePair[1]
result = cookieVal
}
})
}
return result
}
function handleRequest(request) {
const cookie = getCookie(request, COOKIE_NAME)
if (cookie) {
return new Response(cookie)
}
return new Response("No cookie with name: " + COOKIE_NAME)
}
addEventListener("fetch", event => {
event.respondWith(handleRequest(event.request))
})

How it works

The helper getCookie reads the Cookie header with request.headers.get("Cookie"), splits it on ; into individual pairs, and splits each pair on = to compare the cookie name against the one you want. When a match is found, it returns that cookie’s value. The fetch handler then calls getCookie and uses event.respondWith() with a new Response, returning either the cookie value or a message noting the cookie was not present.