NodeRED http响应节点:如何停止NodeRED向内容类型添加字符集?

时间:2019-06-21 14:04:24

标签: http-headers node-red

我需要在NodeRED内为jpeg图像构建一个http代理。我的目标是浏览器确实从NodeRED服务器获取仪表板中的所有页面资源。而且该图像只能从另一台服务器上获得。

我尝试了这种抽象流程:

http-in -> http-request -> function node -> http response

在功能节点中,设置标题:

msg.headers = {
    "content-type": "image/jpeg",
    "content-disposition": "inline; filename=\"myimage.jpg\""
}

问题是,浏览器获取了这些标头(摘录):

content-type: image/jpeg; charset=utf-8
content-disposition: inline; filename="myimage.jpg"

charset=utf-8来自哪里,如何阻止NodeRED添加它?

2 个答案:

答案 0 :(得分:2)

您不会提及流程中设置的msg.payload

如果传递给HTTP响应节点的msg.payload是字符串,则内容类型将获得添加的charset参数。这不是Node-RED的故意行为-而是底层的http / express框架中发生的事情。

如果msg.payload是一个Buffer对象,则不添加任何此类参数。

答案 1 :(得分:-1)

charset = utf-8,由节点红色添加以定义标准,如果标头在其上添加了charset则没有问题。