有没有一种方法可以使用Node/Express 2.x检查发送的邮件头



有没有一种方法可以检查使用node/express 2.x发送了哪些特定的标头?

我有一个文件下载,大多数时候都能很好地工作,但在一些特定的情况下,我在Chrome中遇到了一个错误(节点中没有错误(:

Duplicate headers received from server
The response from the server contained duplicate headers. This problem is generally the result of a misconfigured website or proxy. Only the website or proxy administrator can fix this issue.
Error 349 (net::ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION): Multiple distinct Content-Disposition headers received. This is disallowed to protect against HTTP response splitting attacks.

出于测试目的,我想看看是否已经发送了特定的头,有没有一种方法可以用node.js实现这一点?


因为有人会问我用来设置标题的代码,所以我在下载时用管道传输流,并且只在一个位置设置标题。

res.setHeader('Content-disposition', 'attachment; filename=' + filename)
res.setHeader('Content-Length', stats.size)
res.setHeader('Content-type', 'application/pdf')
stream.pipe(res)

HTTP响应是一个WritableStream。当流关闭时,将发出一个finish事件。因此,听它的诀窍:

res.on('finish', function() {
    console.log(res._headers);
});

更加灵活。可以放在中间件或资源处理程序中。

正如@generalhenry在我的问题评论中所说:

stream.pipe(res).on('end', function () {
  console.log(res._headers); 
});

上面的行对我有用。

res.set("Content-disposition", "attachment; filename=""+file.name+""")

这对我很有效。

相关内容

  • 没有找到相关文章

最新更新