Добавить в строку запроса JavaScript - PullRequest
0 голосов
/ 16 марта 2019

Когда я пытаюсь добавить идентификатор в конец строки запроса, JS добавляет ненужный знак амперсанда и знак «=» в строку запроса.

Я пытаюсь пойти на что-то вроде этого:

http://sample_site/report/file/list?f%5B%5D=1111

но я получаю это при просмотре результата в консоли:

http://sample_site/report/file/list?f%5B%5D=&f=1111

Вот моя функция JS, которая создает объект URL:

buildTileFilter(){
        let url = new URL('http://sample_site/report/file/list?f%5B%5D');

        let query_string = url.search;

        let search_params = new URLSearchParams(query_string);

        search_params.set('f', 1111);

        url.search = search_params.toString();
        let new_url = url.toString();
        return new_url;
    }

1 Ответ

2 голосов
/ 16 марта 2019

Часть "% 5B% 5D" обрабатывается как часть имени параметра. Вы должны добавить его к имени параметра, которое вы устанавливаете, чтобы получить желаемый результат. Это закодированное значение для строки "[]", поэтому, чтобы получить ваш результат, код должен быть:

buildTileFilter(){
        let url = new URL('http://sample_site/report/file/list?f%5B%5D');

        let query_string = url.search;

        let search_params = new URLSearchParams(query_string);

        search_params.set('f[]', 1111);

        url.search = search_params.toString();
        let new_url = url.toString();
        return new_url;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...