case insensitive test for presence of headers because chrome uses lower case in the string

This commit is contained in:
carson 2020-09-18 12:13:16 -06:00
parent 7d49d5ab58
commit f39fccf28c
2 changed files with 38 additions and 27 deletions

View File

@ -1654,15 +1654,13 @@ return (function () {
try {
if (!triggerEvent(elt, 'htmx:beforeOnLoad', eventDetail)) return;
//AK - FIXED CHROME issue - "refuse to get unsafe header" warning.
if (xhr.getAllResponseHeaders().indexOf("HX-Trigger") >= 0) {
if (xhr.getAllResponseHeaders().search(/HX-Trigger/i) >= 0) {
handleTrigger(elt, this.getResponseHeader("HX-Trigger"));
}
if (xhr.getAllResponseHeaders().indexOf("HX-Push") >= 0) {
if (xhr.getAllResponseHeaders().search(/HX-Push/i) >= 0) {
var pushedUrl = this.getResponseHeader("HX-Push");
}
//AK - FIXED CHROME issue - "refuse to get unsafe header" warning. \\
var shouldSaveHistory = shouldPush(elt) || pushedUrl;

View File

@ -61,6 +61,19 @@ describe("Core htmx AJAX headers", function() {
invokedEvent.should.equal(true);
})
it("should handle simple string HX-Trigger response header in different case properly", function () {
this.server.respondWith("GET", "/test", [200, {"hx-trigger": "foo"}, ""]);
var div = make('<div hx-get="/test"></div>');
var invokedEvent = false;
div.addEventListener("foo", function (evt) {
invokedEvent = true;
});
div.click();
this.server.respond();
invokedEvent.should.equal(true);
})
it("should handle a namespaced HX-Trigger response header properly", function () {
this.server.respondWith("GET", "/test", [200, {"HX-Trigger": "namespace:foo"}, ""]);