Let browser handle parsing of URLs before relaying

We don't want to assign a path directly to url.pathname that contains a
search query, since this causes '?' at the beginning of the query to be
URL-encoded to '%3F'. Instead use URL() to parse the path for us.
This commit is contained in:
Alexander Zeijlon 2025-03-10 11:51:49 +01:00
parent b25675e052
commit 045a0ba158
1 changed files with 6 additions and 1 deletions

View File

@ -1058,7 +1058,12 @@ const UI = {
if (port) {
url.port = port;
}
url.pathname = '/' + path;
// "./" is needed to force URL() to interpret the path-variable as
// a path and not as an URL. This is relevant if for example path
// starts with more than one "/", in which case it would be
// interpreted as a host name instead.
url = new URL("./" + path, url);
} else {
// Current (May 2024) browsers support relative WebSocket
// URLs natively, but we need to support older browsers for