Skip to content

Commit 626a0d7

Browse files
committed
ignore hash fragment when parsing query string response URLs
1 parent 3a6d6b7 commit 626a0d7

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

src/UrlUtility.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,14 @@ export class UrlUtility {
3131
value = value.substr(idx + 1);
3232
}
3333

34+
if (delimiter === "?") {
35+
// if we're doing query, then strip off hash fragment before we parse
36+
idx = value.indexOf('#');
37+
if (idx >= 0) {
38+
value = value.substr(0, idx);
39+
}
40+
}
41+
3442
var params = {},
3543
regex = /([^&=]+)=([^&]*)/g,
3644
m;

test/unit/UrlUtility.spec.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,16 @@ describe("UrlUtility", function() {
4545
result.should.deep.equal({ a: "apple", b: "banana", c: "carrot" });
4646
});
4747

48+
it("should parse query string", function() {
49+
let result = UrlUtility.parseUrlFragment("http://server?test1=xoxo&test2=yoyo", "?");
50+
result.should.deep.equal({ test1: "xoxo", test2: "yoyo" });
51+
});
52+
53+
it("should parse query string up to hash", function() {
54+
let result = UrlUtility.parseUrlFragment("http://server?test1=xoxo&test2=yoyo#a=apple&b=banana&c=carrot", "?");
55+
result.should.deep.equal({ test1: "xoxo", test2: "yoyo" });
56+
});
57+
4858
it("should return error for long values", function() {
4959
let result = UrlUtility.parseUrlFragment("a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple&a=apple");
5060
result.should.have.property('error');

0 commit comments

Comments
 (0)