使用res.writeHead()将标头发送到客户端后,无法设置标头。
res.writeHead()方法用于向客户端发送响应头,它接受两个参数:状态码和响应头对象。通过这个方法,我们可以设置响应的状态码和一些自定义的响应头信息。
然而,一旦使用res.writeHead()方法发送了响应头,就无法再对已发送的响应头进行修改。这是因为响应头必须在发送响应体之前发送给客户端,而res.writeHead()方法会立即将响应头发送给客户端。
如果在使用res.writeHead()方法后需要修改响应头,可以使用res.setHeader()方法来实现。res.setHeader()方法接受两个参数:响应头的名称和值。通过这个方法,我们可以修改已发送的响应头或添加新的响应头。
以下是一个示例代码:
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.setHeader('Custom-Header', 'Custom Value');
res.end('Hello, World!');
});
server.listen(3000, () => {
console.log('Server is running on port 3000');
});
在上述示例中,我们首先使用res.writeHead()方法发送了一个状态码为200的响应头,并设置了Content-Type为text/plain。然后,我们使用res.setHeader()方法添加了一个自定义的响应头Custom-Header。
需要注意的是,res.setHeader()方法必须在res.writeHead()方法之后调用,否则会抛出错误。这是因为res.writeHead()方法会立即发送响应头,而res.setHeader()方法需要在响应头未发送之前调用。
推荐的腾讯云相关产品:腾讯云云服务器(CVM),产品介绍链接地址:https://cloud.tencent.com/product/cvm
领取专属 10元无门槛券
手把手带您无忧上云