【发布时间】:2020-02-03 15:06:01
【问题描述】:
我正在尝试从 express 节点后端以单一响应的形式发送多个 cookie。 Set-cookie 标头设置了看似有效的值,但除了第一个之外,没有任何 cookie 被存储。这可能是什么原因造成的?是否有可能其他一些标头以某种方式干扰?
app.post("/api/test", function(req, res) {
res.cookie("age", "44");
res.cookie("name", "ok");
res.cookie("something", "else");
res.send("cookies set");
});
标题中的结果
Access-Control-Allow-Credentials: true
Cache-Control: private
Content-Type: text/html; charset=utf-8
Etag: W/"b-AindM8n+eJQTR6jb7Hg8S4fG8qI"
Expires: Sat, 05 Oct 2019 16:18:12 GMT
Function-Execution-Id: r7d6qjgl5noi
Server: Google Frontend
X-Cloud-Trace-Context: 051139bdc4cc753cad51c0dd3e89e0b8;o=1
X-Powered-By: Express
Content-Length: 11
Accept-Ranges: bytes
Date: Sat, 05 Oct 2019 16:18:12 GMT
Connection: keep-alive
Set-Cookie: age=44; path=/,name=ok; path=/,something=else; path=/
X-Served-By: cache-ams21036-AMS
X-Cache: MISS
X-Cache-Hits: 0
X-Timer: S1570292292.302186,VS0,VE410
Vary: Origin,cookie,need-authorization, x-fh-requested-host, accept-encoding
我希望这会在浏览器中存储 3 个 cookie,但始终只保存第一个。
编辑:
经过进一步调查,set-cookie 标头被写为逗号分隔的单行代码的原因最终被 Firebase 托管以重写功能。
{
"source": "/{,/**}",
"function": "testingexpress"
}
【问题讨论】:
标签: express cookies http-headers google-cloud-functions firebase-hosting