ERR_HTTP_HEADERS_SENT:无法设置 cookie
Posted
技术标签:
【中文标题】ERR_HTTP_HEADERS_SENT:无法设置 cookie【英文标题】:ERR_HTTP_HEADERS_SENT: Cannot set cookie 【发布时间】:2021-05-28 08:42:11 【问题描述】:这是我的代码
import Request, Response from "express";
import database from "firebase-admin";
async function updatereAccessToken(
req: Request,
res: Response,
db: database.Database
)
try
await db
.ref(
`/token/$"-MUQK0wGmrjPVBdFH7gr"/$"90417abf-b085-4072-b4ec-f009b5fe4016"`
)
.set("90417abf-b085-4072-b4ec-f009b5fe4016");
await db
.ref(
`/token/$"-MUQK0wGmrjPVBdFH7gr"/$"90417abf-b085-4072-b4ec-f009b5fe4016"`
)
.set("90417abf-b085-4072-b4ec-f009b5fe4016");
//comments
res.cookie("act", "tokenAuth.accessToken",
httpOnly: true,
sameSite: "lax",
);
res.cookie("ret", "tokenAuth.refreshToken",
httpOnly: true,
sameSite: "lax",
);
return "currentUser";
catch (error)
代码在评论之前有效。然后我得到错误
[ERR_HTTP_HEADERS_SENT]:发送到客户端后无法设置标头 在 ServerResponse.setHeader (_http_outgoing.js:558:11)
将代码分成两部分
1
await db
.ref(
`/token/$"-MUQK0wGmrjPVBdFH7gr"/$"90417abf-b085-4072-b4ec-f009b5fe4016"`
)
.set("90417abf-b085-4072-b4ec-f009b5fe4016");
await db
.ref(
`/token/$"-MUQK0wGmrjPVBdFH7gr"/$"90417abf-b085-4072-b4ec-f009b5fe4016"`
)
.set("90417abf-b085-4072-b4ec-f009b5fe4016");
2
res.cookie("act", "tokenAuth.accessToken",
httpOnly: true,
sameSite: "lax",
);
res.cookie("ret", "tokenAuth.refreshToken",
httpOnly: true,
sameSite: "lax",
);
这两个部分的代码分开工作,但不能一起工作。是什么原因?。
【问题讨论】:
【参考方案1】:Error [ERR_HTTP_HEADERS_SENT]
是一个有趣的错误,当服务器尝试向客户端发送多个响应时会触发该错误。这意味着对于给定的客户端请求,服务器先前向客户端发送了响应(请求资源的成功响应或错误请求的错误响应),现在意外地尝试发送另一个响应。
这就是为什么他们分开而不是一起工作的原因。
【讨论】:
以上是关于ERR_HTTP_HEADERS_SENT:无法设置 cookie的主要内容,如果未能解决你的问题,请参考以下文章
为啥我不断收到“错误 [ERR_HTTP_HEADERS_SENT]:将标头发送到客户端后无法设置标头”错误?
Express: [ERR_HTTP_HEADERS_SENT]: 发送到客户端后无法设置标头
错误 [ERR_HTTP_HEADERS_SENT] 在将标头发送到客户端后无法设置标头
错误 [ERR_HTTP_HEADERS_SENT]:在将标头发送到客户端后无法设置标头