在 cloudflare worker header.set 的 'Set-Cookie' 标头中设置多个 cookie.set('Set-Cookie' 函数)



我正在尝试使用CloudFare Worker在发送给客户端之前将2个cookie键/值对添加到响应中。

不幸的是,CloudFlare工人的所有文档都说要使用响应。Neaders.set('set-cookie',xxx(函数来设置cookie值:

let response = await fetch(request);
response = new Response(response.body, response);
response.headers.set('Set-Cookie', "val1=x; Expires=Wed, 21 Oct 2020 07:28:00 GMT; Path='/';");
return response;

这仅允许您设置一个cookie标头,如果调用了两次,则仅覆盖现有标头。

我尝试调用函数两次,只有最后一个值进来:

response.headers.set('Set-Cookie', "val1=1; Expires=Wed, 21 Oct 2020 07:28:00 GMT; Path='/';");
response.headers.set('Set-Cookie', "val2=2; Expires=Wed, 21 Oct 2020 07:28:00 GMT; Path='/';");

我尝试在一个标题中传递2个cookie,并用逗号分开,但只有一个。

response.headers.set('Set-Cookie', "val1=1; Expires=Wed, 21 Oct 2020 07:28:00 GMT; Path='/';, val2=2; Expires=Wed, 21 Oct 2020 07:28:00 GMT; Path='/';");

我尝试通过2个cookie键/值对,但是第一个键值设置为" 1,val2 = 2":

response.headers.set('Set-Cookie', "val1=1, val2=2; Expires=Wed, 21 Oct 2020 07:28:00 GMT; Path='/';");

这些都不是。

我发现的唯一工作是将vars捆绑到一个变量中,然后在客户端使用JS解开包装并应用变量:

response.headers.set('Set-Cookie', "jsVal={val1:1, val2:2}; Expires=Wed, 21 Oct 2020 07:28:00 GMT; Path='/';");

..然后在JS文件中应用2个cookie值。显然这不是理想的。

有人通过CloudFlare工人在一个响应标头中使用2个单独的cookie有运气吗?谢谢。

Headers.append():https://developer.mozilla.org/en-us/docs/web/api/headers/headers/append

set(set((和append((之间的区别是,如果指定 标题已经存在并接受多个值,set((将 用新值覆盖现有值,而append((将 将新值附加到值集的末尾。

最新更新