Вебсправочник
Основы веб-разработки

URLSearchParams: параметры без ручной склейки

URLSearchParams помогает собирать и читать параметры запроса с учётом кодирования специальных символов.

Назначение

URLSearchParams помогает собирать и читать параметры запроса с учётом кодирования специальных символов.

Как это работает

Методы set и append различаются: первый заменяет значения ключа, второй добавляет ещё одно. Для повторяющихся параметров нужен getAll. Пробел в сериализованной строке обычно представлен плюсом.

Пример

const params = new URLSearchParams();
params.set('q', 'HTML & CSS');
params.append('tag', 'html');
params.append('tag', 'css');
console.assert(params.get('q') === 'HTML & CSS');
console.assert(params.getAll('tag').length === 2);

Что должно получиться

Фраза сохраняется одним значением, а tag имеет два отдельных значения. Сериализацию можно использовать в URL, но сервер всё равно обязан проверять смысл параметров.

Граница применения и частая ошибка

Не склеивайте пользовательский ввод с амперсандом и знаком равенства вручную. Эти символы могут стать частью структуры запроса вместо буквального значения.

Самостоятельная проверка

Добавьте поисковую фразу с & и двумя пробелами. Затем прочитайте её обратно и убедитесь, что она не превратилась в несколько параметров.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.