Node.js 响应未结束,浏览器仍在加载-nodejs和GraphicsMagck
我对nodejs是新手。在将图像发送到浏览器之前,我正在使用GraphicsMagck调整图像大小。 我的代码如下所示(res是从函数(req,res){…}发送的响应)- 我在浏览器中获取图像,我获取日志“buffer here”,但浏览器仍处于“loading”状态 我曾尝试将.stream()与gm一起使用,并通过管道将标准输出发送到响应,但它也有同样的问题 如果我废除通用汽车公司,直接写下回复的正文,就像这样Node.js 响应未结束,浏览器仍在加载-nodejs和GraphicsMagck,node.js,imagemagick,graphicsmagick,Node.js,Imagemagick,Graphicsmagick,我对nodejs是新手。在将图像发送到浏览器之前,我正在使用GraphicsMagck调整图像大小。 我的代码如下所示(res是从函数(req,res){…}发送的响应)- 我在浏览器中获取图像,我获取日志“buffer here”,但浏览器仍处于“loading”状态 我曾尝试将.stream()与gm一起使用,并通过管道将标准输出发送到响应,但它也有同样的问题 如果我废除通用汽车公司,直接写下回复的正文,就像这样 res.end(body, 'binary'); 然后它就正常工作了 有人能
res.end(body, 'binary');
然后它就正常工作了
有人能告诉我这里做错了什么吗?我发现了问题所在。
问题不在于node或gm,而在于HTTP响应头
当GM返回缓冲区并将其写入HTTP响应时,它会将传输编码头设置为“chunked”。在这种情况下,不应设置内容长度标题。
你可以在这里了解更多
因为我设置了这两个选项,所以即使在图像发送之后,浏览器也会一直等待内容
代码与我发布的代码完全相同,只是在setResponseData()函数(基本上用于设置标题)中,我现在没有设置内容长度标题
res.end(body, 'binary');