Cookies 在';设置Cookie';cloudflare worker头中的头。set(';set Cookie';函数

Cookies 在';设置Cookie';cloudflare worker头中的头。set(';set Cookie';函数,cookies,http-headers,cloudflare-workers,Cookies,Http Headers,Cloudflare Workers,我正在尝试使用cloudfare worker在将响应发送到客户端之前向响应添加2个cookie键/值对 不幸的是,cloudflare workers的所有文档都说要使用response.headers.set('set-Cookie',xxx)函数来设置Cookie值: let response = await fetch(request); response = new Response(response.body, response); response.headers.set('Se

我正在尝试使用cloudfare worker在将响应发送到客户端之前向响应添加2个cookie键/值对

不幸的是,cloudflare workers的所有文档都说要使用response.headers.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='/';");
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='/';");
我尝试在一个标题中传递两个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='/';");
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”:

这些都不管用

我发现的唯一解决方法是将变量捆绑到一个变量中,然后在客户端使用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 worker在一个响应头中应用了两个单独的cookie吗?谢谢。

头。append()

set()和append()之间的区别在于 标头已存在并接受多个值,set()将 用新值覆盖现有值,而append()将 将新值附加到值集的末尾


哦,我的天啊,这么简单。我怎么会错过呢。谢谢你,伙计。我可以确认这在cloudflare worker中是有效的。