Я создаю HTTP-запрос на Angular, но я не знаю, как добавить к нему аргументы URL (строку запроса).
this.http.get(StaticSettings.BASE_URL).subscribe(
(response) => this.onGetForecastResult(response.json()),
(error) => this.onGetForecastError(error.json()),
() => this.onGetForecastComplete()
);
Теперь мой StaticSettings.BASE_URL похож на URL без строки запроса, например: http://atsomeplace.com/, но я хочу, чтобы он был http://atsomeplace.com/?var1=val1&var2=val2.
Где var1 и var2 подходят для моего объекта запроса Http? Я хочу добавить их как объект.
{
query: {
var1: val1,
var2: val2
}
}
а затем только модуль Http выполняет работу, чтобы разобрать его в строку запроса URL.
http
angular
typescript
Мигель Латтуада
источник
источник
Ответы:
В HTTPClient методы позволяют установить Params в его вариантах.
Вы можете настроить его, импортировав HttpClientModule из пакета @ angular / common / http.
После этого вы можете внедрить HttpClient и использовать его для выполнения запроса.
Для угловых версий до версии 4 вы можете сделать то же самое с помощью сервиса Http .
Метод Http.get принимает объект, который реализует RequestOptionsArgs в качестве второго параметра.
Поле поиска этого объекта можно использовать для установки строки или объекта URLSearchParams .
Пример:
Документация по классу Http содержит более подробную информацию. Это можно найти здесь и рабочий пример здесь .
источник
http.get(url, {params: {var1: val1, var2: val2}})
search
свойство было исключено из 4.0.0 -> использоватьparams
вместоРедактировать угловой> = 4.3.x
HttpClient был представлен вместе с HttpParams . Ниже приведен пример использования:
(Старые ответы)
Изменить угловой> = 4.x
requestOptions.search
был объявлен устаревшим ИспользуйтеrequestOptions.params
вместо:Оригинальный ответ (Angular 2)
Вы должны импортировать,
URLSearchParams
как показано нижеЗатем создайте параметры и выполните http-запрос следующим образом:
источник
RequestOptions
. Я обновил свой ответ.search
. Исправлена моя проблемаsearch
собственности.Версия 5+
С Angular 5 и выше, вам не нужно использовать HttpParams . Вы можете напрямую отправить свой объект json, как показано ниже.
Обратите внимание, что значения данных должны быть строковыми, т.е.
{ params: {limit: "2"}}
Версия 4.3.x +
Используйте HttpParams, HttpClient из @ angular / common / http
Может помочь некоторым!
источник
JSON.stringify()
Угловой 6
Вы можете передать параметры, необходимые для получения вызова, используя параметры:
где x = {свойство: "123"}.
Что касается функции API, которая регистрирует «123»:
источник
Мой пример
Мой метод
в моем компоненте
Почтальоном
источник
В последней версии Angular 7/8 вы можете использовать самый простой подход: -
источник
searchParams
свойств не являетсяstring
значением.Если вы планируете отправить более одного параметра.
Составная часть
обслуживание
И продолжайте ваш запрос http, как это сделал @ethemsulan.
Серверный маршрут
источник
Вы можете использовать HttpParams из @ angular / common / http и передать строку с запросом. Например:
Теперь в вашем коде
И это работает для вас :)
Я надеюсь помочь тебе
источник
при условии, что вы установили jQuery , я делаю
npm i jquery --save
и включаюapps.scripts
вangular-cli.json
источник
источник
Вы можете использовать Url Parameters из официальной документации.
Пример:
this.httpClient.get(this.API, { params: new HttpParams().set('noCover', noCover) })
источник