From a2796d89ab3dbf4a15b63b0f4623387fdc6acd5b Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Mon, 17 Aug 2020 18:44:36 +0100 Subject: [PATCH] Fix httpRequest() header handling Header names are not case sensitive, so the old code failed if it was called with a "Content-Type" header --- core/modules/utils/dom/http.js | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/core/modules/utils/dom/http.js b/core/modules/utils/dom/http.js index 2f6439417..952704138 100644 --- a/core/modules/utils/dom/http.js +++ b/core/modules/utils/dom/http.js @@ -24,6 +24,16 @@ exports.httpRequest = function(options) { var type = options.type || "GET", url = options.url, headers = options.headers || {accept: "application/json"}, + hasHeader = function(targetHeader) { + targetHeader = targetHeader.toLowerCase(); + var result = false; + $tw.utils.each(headers,function(header,headerTitle,object) { + if(headerTitle.toLowerCase() === targetHeader) { + result = true; + } + }); + return result; + }, returnProp = options.returnProp || "responseText", request = new XMLHttpRequest(), data = "", @@ -63,10 +73,10 @@ exports.httpRequest = function(options) { request.setRequestHeader(headerTitle,header); }); } - if(data && !$tw.utils.hop(headers,"Content-type")) { - request.setRequestHeader("Content-type","application/x-www-form-urlencoded; charset=UTF-8"); + if(data && !hasHeader("Content-Type")) { + request.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8"); } - if(!$tw.utils.hop(headers,"X-Requested-With")) { + if(!hasHeader("X-Requested-With")) { request.setRequestHeader("X-Requested-With","TiddlyWiki"); } try {