【发布时间】:2021-07-21 02:43:36
【问题描述】:
我正在使用 express 构建一个简单的服务器。 一切正常,但每次我尝试硬刷新(cntr + R)我的页面时,我都会在控制台中遇到这个烦人的错误。
错误 [ERR_HTTP_HEADERS_SENT]:发送到客户端后无法设置标头
代码如下:
app.get('/index', (req, res) => {
const filePath = path.join(__dirname, 'public', 'index.html');
console.log(res.headersSent);
res.sendFile(filePath);
});
console.log(res.headersSent) 用于检查是否确实未设置标题(每次都记录为 false)。
我尝试发送一个简单的 JSON 而不是一个文件,并且没有发生错误:
app.get('/index', (req, res) => {
const filePath = path.join(__dirname, 'public', 'index.html');
console.log(res.headersSent);
res.json({status: 'All good'});
});
该错误仅在我使用 res.sendFile() 时发生。 index.html 将在加载后请求一个 index.js 文件。也许这就是问题?但这不是一个不同的要求吗?
谢谢!
编辑 我尝试检查 sendFile() 的回调函数中的错误。 它是未定义的,即使控制台不断吐出“无法设置标题”错误
【问题讨论】:
-
“但这不是一个不同的请求吗?”是的,但从你所说的听起来 index.js 端点可能会导致标头被发送两次。
标签: node.js express server http-headers runtime-error