mirror of
https://github.com/bigskysoftware/htmx.git
synced 2025-10-10 19:24:48 +00:00
case insensitive test for presence of headers because chrome uses lower case in the string
This commit is contained in:
parent
7d49d5ab58
commit
f39fccf28c
@ -1654,15 +1654,13 @@ return (function () {
|
|||||||
try {
|
try {
|
||||||
if (!triggerEvent(elt, 'htmx:beforeOnLoad', eventDetail)) return;
|
if (!triggerEvent(elt, 'htmx:beforeOnLoad', eventDetail)) return;
|
||||||
|
|
||||||
//AK - FIXED CHROME issue - "refuse to get unsafe header" warning.
|
if (xhr.getAllResponseHeaders().search(/HX-Trigger/i) >= 0) {
|
||||||
if (xhr.getAllResponseHeaders().indexOf("HX-Trigger") >= 0) {
|
|
||||||
handleTrigger(elt, this.getResponseHeader("HX-Trigger"));
|
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");
|
var pushedUrl = this.getResponseHeader("HX-Push");
|
||||||
}
|
}
|
||||||
//AK - FIXED CHROME issue - "refuse to get unsafe header" warning. \\
|
|
||||||
|
|
||||||
var shouldSaveHistory = shouldPush(elt) || pushedUrl;
|
var shouldSaveHistory = shouldPush(elt) || pushedUrl;
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
describe("Core htmx AJAX headers", function() {
|
describe("Core htmx AJAX headers", function () {
|
||||||
beforeEach(function () {
|
beforeEach(function () {
|
||||||
this.server = makeServer();
|
this.server = makeServer();
|
||||||
clearWorkArea();
|
clearWorkArea();
|
||||||
@ -8,8 +8,8 @@ describe("Core htmx AJAX headers", function() {
|
|||||||
clearWorkArea();
|
clearWorkArea();
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should include the HX-Request header", function(){
|
it("should include the HX-Request header", function () {
|
||||||
this.server.respondWith("GET", "/test", function(xhr){
|
this.server.respondWith("GET", "/test", function (xhr) {
|
||||||
xhr.requestHeaders['HX-Request'].should.be.equal('true');
|
xhr.requestHeaders['HX-Request'].should.be.equal('true');
|
||||||
xhr.respond(200, {}, "");
|
xhr.respond(200, {}, "");
|
||||||
});
|
});
|
||||||
@ -18,8 +18,8 @@ describe("Core htmx AJAX headers", function() {
|
|||||||
this.server.respond();
|
this.server.respond();
|
||||||
})
|
})
|
||||||
|
|
||||||
it("should include the HX-Trigger header", function(){
|
it("should include the HX-Trigger header", function () {
|
||||||
this.server.respondWith("GET", "/test", function(xhr){
|
this.server.respondWith("GET", "/test", function (xhr) {
|
||||||
xhr.requestHeaders['HX-Trigger'].should.equal('d1');
|
xhr.requestHeaders['HX-Trigger'].should.equal('d1');
|
||||||
xhr.respond(200, {}, "");
|
xhr.respond(200, {}, "");
|
||||||
});
|
});
|
||||||
@ -28,8 +28,8 @@ describe("Core htmx AJAX headers", function() {
|
|||||||
this.server.respond();
|
this.server.respond();
|
||||||
})
|
})
|
||||||
|
|
||||||
it("should include the HX-Trigger-Name header", function(){
|
it("should include the HX-Trigger-Name header", function () {
|
||||||
this.server.respondWith("GET", "/test", function(xhr){
|
this.server.respondWith("GET", "/test", function (xhr) {
|
||||||
xhr.requestHeaders['HX-Trigger-Name'].should.equal('n1');
|
xhr.requestHeaders['HX-Trigger-Name'].should.equal('n1');
|
||||||
xhr.respond(200, {}, "");
|
xhr.respond(200, {}, "");
|
||||||
});
|
});
|
||||||
@ -38,8 +38,8 @@ describe("Core htmx AJAX headers", function() {
|
|||||||
this.server.respond();
|
this.server.respond();
|
||||||
})
|
})
|
||||||
|
|
||||||
it("should include the HX-Target header", function(){
|
it("should include the HX-Target header", function () {
|
||||||
this.server.respondWith("GET", "/test", function(xhr){
|
this.server.respondWith("GET", "/test", function (xhr) {
|
||||||
xhr.requestHeaders['HX-Target'].should.equal('d1');
|
xhr.requestHeaders['HX-Target'].should.equal('d1');
|
||||||
xhr.respond(200, {}, "");
|
xhr.respond(200, {}, "");
|
||||||
});
|
});
|
||||||
@ -48,8 +48,8 @@ describe("Core htmx AJAX headers", function() {
|
|||||||
this.server.respond();
|
this.server.respond();
|
||||||
})
|
})
|
||||||
|
|
||||||
it("should handle simple string HX-Trigger response header properly", function(){
|
it("should handle simple string HX-Trigger response header properly", function () {
|
||||||
this.server.respondWith("GET", "/test", [200, {"HX-Trigger" : "foo"}, ""]);
|
this.server.respondWith("GET", "/test", [200, {"HX-Trigger": "foo"}, ""]);
|
||||||
|
|
||||||
var div = make('<div hx-get="/test"></div>');
|
var div = make('<div hx-get="/test"></div>');
|
||||||
var invokedEvent = false;
|
var invokedEvent = false;
|
||||||
@ -61,8 +61,21 @@ describe("Core htmx AJAX headers", function() {
|
|||||||
invokedEvent.should.equal(true);
|
invokedEvent.should.equal(true);
|
||||||
})
|
})
|
||||||
|
|
||||||
it("should handle a namespaced HX-Trigger response header properly", function(){
|
it("should handle simple string HX-Trigger response header in different case properly", function () {
|
||||||
this.server.respondWith("GET", "/test", [200, {"HX-Trigger" : "namespace:foo"}, ""]);
|
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"}, ""]);
|
||||||
|
|
||||||
var div = make('<div hx-get="/test"></div>');
|
var div = make('<div hx-get="/test"></div>');
|
||||||
var invokedEvent = false;
|
var invokedEvent = false;
|
||||||
@ -74,8 +87,8 @@ describe("Core htmx AJAX headers", function() {
|
|||||||
invokedEvent.should.equal(true);
|
invokedEvent.should.equal(true);
|
||||||
})
|
})
|
||||||
|
|
||||||
it("should handle basic JSON HX-Trigger response header properly", function(){
|
it("should handle basic JSON HX-Trigger response header properly", function () {
|
||||||
this.server.respondWith("GET", "/test", [200, {"HX-Trigger" : "{\"foo\":null}"}, ""]);
|
this.server.respondWith("GET", "/test", [200, {"HX-Trigger": "{\"foo\":null}"}, ""]);
|
||||||
|
|
||||||
var div = make('<div hx-get="/test"></div>');
|
var div = make('<div hx-get="/test"></div>');
|
||||||
var invokedEvent = false;
|
var invokedEvent = false;
|
||||||
@ -89,8 +102,8 @@ describe("Core htmx AJAX headers", function() {
|
|||||||
invokedEvent.should.equal(true);
|
invokedEvent.should.equal(true);
|
||||||
})
|
})
|
||||||
|
|
||||||
it("should handle JSON with array arg HX-Trigger response header properly", function(){
|
it("should handle JSON with array arg HX-Trigger response header properly", function () {
|
||||||
this.server.respondWith("GET", "/test", [200, {"HX-Trigger" : "{\"foo\":[1, 2, 3]}"}, ""]);
|
this.server.respondWith("GET", "/test", [200, {"HX-Trigger": "{\"foo\":[1, 2, 3]}"}, ""]);
|
||||||
|
|
||||||
var div = make('<div hx-get="/test"></div>');
|
var div = make('<div hx-get="/test"></div>');
|
||||||
var invokedEvent = false;
|
var invokedEvent = false;
|
||||||
@ -104,8 +117,8 @@ describe("Core htmx AJAX headers", function() {
|
|||||||
invokedEvent.should.equal(true);
|
invokedEvent.should.equal(true);
|
||||||
})
|
})
|
||||||
|
|
||||||
it("should handle JSON with array arg HX-Trigger response header properly", function(){
|
it("should handle JSON with array arg HX-Trigger response header properly", function () {
|
||||||
this.server.respondWith("GET", "/test", [200, {"HX-Trigger" : "{\"foo\":{\"a\":1, \"b\":2}}"}, ""]);
|
this.server.respondWith("GET", "/test", [200, {"HX-Trigger": "{\"foo\":{\"a\":1, \"b\":2}}"}, ""]);
|
||||||
|
|
||||||
var div = make('<div hx-get="/test"></div>');
|
var div = make('<div hx-get="/test"></div>');
|
||||||
var invokedEvent = false;
|
var invokedEvent = false;
|
||||||
@ -120,8 +133,8 @@ describe("Core htmx AJAX headers", function() {
|
|||||||
invokedEvent.should.equal(true);
|
invokedEvent.should.equal(true);
|
||||||
})
|
})
|
||||||
|
|
||||||
it("should survive malformed JSON in HX-Trigger response header", function(){
|
it("should survive malformed JSON in HX-Trigger response header", function () {
|
||||||
this.server.respondWith("GET", "/test", [200, {"HX-Trigger" : "{not: valid}"}, ""]);
|
this.server.respondWith("GET", "/test", [200, {"HX-Trigger": "{not: valid}"}, ""]);
|
||||||
|
|
||||||
var div = make('<div hx-get="/test"></div>');
|
var div = make('<div hx-get="/test"></div>');
|
||||||
div.click();
|
div.click();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user