У меня есть URL:
var url = /company/overview
У меня есть параметры запроса
var params = {
campaign = "back-to-work"
user = "1"
}
Как я могу преобразовать эти два значения (первоначально извлеченные из $location.path()
и $location.search()
) в один параметр запроса, называемый return_to
. Я позже свяжу этот параметр return_to
query с URL-адресом для входа.
Github делает что-то подобное при попытке доступа к контенту, требующему входа в систему:
https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Forgs%2FCompany%2Fdashboard%3Fcampaign%3Dback-to-work
Вы можете использовать
encodeURIComponent($location.path())
который возвращает следующую страницу для этой страницы
"%2Fquestions%2F39034879%2Fconvert-url-and-query-parameters-into-one-query-parameter"
Вы просто добавляете это как парам в другой URL, и вам хорошо идти :)
Дополнительная информация:
В JavaScript есть две опции кодирования:
encodeURI()
не будет кодировать: ~!@#$&*()=:/,;?+'
encodeURIComponent()
не будет кодировать: ~!*()'
Для получения более подробной информации см. " Лучшая практика": escape или encodeURI/encodeURIComponent.