diff --git a/package.json b/package.json index d401a614e..30ef53dc0 100644 --- a/package.json +++ b/package.json @@ -48,6 +48,7 @@ "js-yaml": "3.13.1", "json-stringify-safe": "5.0.1", "jsonata": "1.6.4", + "media-typer": "1.1.0", "memorystore": "1.6.1", "mime": "2.4.2", "mqtt": "2.18.8", diff --git a/packages/node_modules/@node-red/nodes/core/io/21-httpin.js b/packages/node_modules/@node-red/nodes/core/io/21-httpin.js index 7e90478f7..fc3fafd28 100644 --- a/packages/node_modules/@node-red/nodes/core/io/21-httpin.js +++ b/packages/node_modules/@node-red/nodes/core/io/21-httpin.js @@ -23,6 +23,7 @@ module.exports = function(RED) { var cors = require('cors'); var onHeaders = require('on-headers'); var typer = require('content-type'); + var mediaTyper = require('media-typer'); var isUtf8 = require('is-utf8'); var hashSum = require("hash-sum"); @@ -36,18 +37,22 @@ module.exports = function(RED) { var checkUTF = false; if (req.headers['content-type']) { - var parsedType = typer.parse(req.headers['content-type']) - if (parsedType.type === "text") { - isText = true; - } else if (parsedType.subtype === "xml" || parsedType.suffix === "xml") { - isText = true; - } else if (parsedType.type !== "application") { - isText = false; - } else if (parsedType.subtype !== "octet-stream") { - checkUTF = true; - } else { - // applicatino/octet-stream - isText = false; + var contentType = typer.parse(req.headers['content-type']) + if (contentType.type) { + var parsedType = mediaTyper.parse(contentType.type); + if (parsedType.type === "text") { + isText = true; + } else if (parsedType.subtype === "xml" || parsedType.suffix === "xml") { + isText = true; + } else if (parsedType.type !== "application") { + isText = false; + } else if (parsedType.subtype !== "octet-stream") { + checkUTF = true; + } else { + // applicatino/octet-stream + isText = false; + } + } } diff --git a/packages/node_modules/@node-red/nodes/package.json b/packages/node_modules/@node-red/nodes/package.json index 9263de215..6916eadaf 100644 --- a/packages/node_modules/@node-red/nodes/package.json +++ b/packages/node_modules/@node-red/nodes/package.json @@ -30,6 +30,7 @@ "https-proxy-agent": "2.2.1", "is-utf8": "0.2.1", "js-yaml": "3.13.1", + "media-typer": "1.1.0", "mqtt": "2.18.8", "multer": "1.4.1", "mustache": "3.0.1",