URL из location.href отсутствует searchParams - PullRequest
0 голосов
/ 17 октября 2019

Я пытаюсь разобрать параметры запроса / поиска текущего маршрута

let url = new URL(location.href);

Когда я смотрю на url, параметры поиска находятся в href. Я ожидал, что они будут в searchParams, что пусто. Мои ожидания не оправдались?

URL:

hash: "#/admin?ac=flags"
host: "localhost:8084"
hostname: "localhost"
href: "http://localhost:8084/#/admin?ac=flags"
origin: "http://localhost:8084"
password: ""
pathname: "/"
port: "8084"
protocol: "http:"
search: ""
searchParams: URLSearchParams { }

Ответы [ 2 ]

1 голос
/ 18 октября 2019

href содержит весь URL

Строка запроса появится в searchParams, но ваш URL не содержит строку запроса.

У вас естьидентификатор фрагмента (раздел, начинающийся с #), который является последним компонентом URL.

Если вы хотите получить строку запроса, вам нужен раздел, начинающийся с ? после пути, но до идентификатора фрагмента.

0 голосов
/ 17 октября 2019

Нет, ваши ожидания верны. Действительно, свойство searchParams возвращает объект URLSearchParams, и он не является пустым.

let urlparams = (новый URL (location.href)). SearchParams;

Теперь urlparams содержит объект, и выможно использовать метод get:

urlparams.get ("ac")

...