tencent cloud

Feedback

Setting Cookies

Last updated: 2023-09-11 17:49:21
    In this example, cookies are used to count the number of access requests. When a browser accesses the Edge Functions service, the number of access requests is increased by 1.

    Sample Code

    // cookie name
    const COOKIE_NAME = 'count';
    
    async function handleRequest(request) {
    // collected the current requests' Cookies and resolution into scope
    const cookies = new Cookies(request.headers.get('cookie'));
    const cookieCount = cookies.get(COOKIE_NAME);
    // count increment
    const count = Number(cookieCount && cookieCount.value || 0) + 1;
    // update Cookie's count
    cookies.set(COOKIE_NAME, String(count));
    
    const response = new Response(`The count is: ${count}`);
    // setting responded cookies
    response.headers.set('Set-Cookie', getSetCookie(cookies.get(COOKIE_NAME)));
    return response;
    }
    
    // concatenate Set-Cookie
    function getSetCookie(cookie) {
    const cookieArr = [
    `${encodeURIComponent(cookie.name)}=${encodeURIComponent(cookie.value)}`,
    ];
    
    const key2name = {
    expires: 'Expires',
    max_age: 'Max-Age',
    domain: 'Domain',
    path: 'Path',
    secure: 'Secure',
    httponly: 'HttpOnly',
    samesite: 'SameSite',
    };
    
    Object.keys(key2name).forEach(key => {
    if (cookie[key]) {
    cookieArr.push(`${key2name[key]}=${cookie[key]}`);
    }
    });
    
    return cookieArr.join('; ');
    }
    
    addEventListener('fetch', (event) => {
    event.respondWith(handleRequest(event.request));
    });

    Sample Preview

    In the address bar of the browser, enter a URL that matches a trigger rule of the edge function to preview the effect of the sample code.
    
    
    

    References

    Contact Us

    Contact our sales team or business advisors to help your business.

    Technical Support

    Open a ticket if you're looking for further assistance. Our Ticket is 7x24 avaliable.

    7x24 Phone Support