Estou criando uma solicitação HTTP no Angular, mas não sei como adicionar argumentos de URL (string de consulta) a ele.
this.http.get(StaticSettings.BASE_URL).subscribe(
(response) => this.onGetForecastResult(response.json()),
(error) => this.onGetForecastError(error.json()),
() => this.onGetForecastComplete()
);
Agora, meu StaticSettings.BASE_URL é algo como um URL sem string de consulta como: http://atsomeplace.com/, mas eu quero que seja http://atsomeplace.com/?var1=val1&var2=val2
Onde var1 e var2 se encaixam no meu objeto de solicitação Http? Eu quero adicioná-los como um objeto.
{
query: {
var1: val1,
var2: val2
}
}
e, em seguida, apenas o módulo Http faz o trabalho para analisá-lo na string de consulta da URL.
http
angular
typescript
Miguel Lattuada
fonte
fonte
Respostas:
Os métodos HttpClient permitem definir os parâmetros nas opções.
Você pode configurá-lo importando o HttpClientModule do pacote @ angular / common / http.
Depois disso, você pode injetar o HttpClient e usá-lo para fazer a solicitação.
Para versões angulares anteriores à versão 4, você pode fazer o mesmo usando o serviço Http .
O método Http.get usa um objeto que implementa RequestOptionsArgs como um segundo parâmetro.
O campo de pesquisa desse objeto pode ser usado para definir uma string ou um objeto URLSearchParams .
Um exemplo:
A documentação para a classe Http tem mais detalhes. Pode ser encontrado aqui e um exemplo de trabalho aqui .
fonte
http.get(url, {params: {var1: val1, var2: val2}})
search
propriedade foi privada de 4.0.0 -> useparams
vez dissoEditar Angular> = 4.3.x
HttpClient foi introduzido junto com HttpParams . Abaixo um exemplo de uso:
(Respostas antigas)
Editar Angular> = 4.x
requestOptions.search
foi descontinuado. Use emrequestOptions.params
vez disso:Resposta original (Angular 2)
Você precisa importar
URLSearchParams
como abaixoE, em seguida, crie seus parâmetros e faça a solicitação http da seguinte maneira:
fonte
RequestOptions
. Eu atualizei minha resposta.search
. Corrigido meu problemasearch
propriedade.Versão 5+
Com o Angular 5 e versões posteriores , você NÃO precisa usar HttpParams . Você pode enviar diretamente seu objeto json, como mostrado abaixo.
Observe que os valores dos dados devem ser string, ou seja;
{ params: {limit: "2"}}
Versão 4.3.x +
Use HttpParams, HttpClient de @ angular / common / http
Pode ajudar alguns!
fonte
JSON.stringify()
Angular 6
Você pode passar os parâmetros necessários para receber chamadas usando params:
onde x = {propriedade: "123"}.
Quanto à função api que registra "123":
fonte
Meu exemplo
Meu método
no meu componente
Por carteiro
fonte
No mais recente Angular 7/8, você pode usar a abordagem mais simples: -
fonte
searchParams
propriedades 'não forstring
valores.Se você planeja enviar mais de um parâmetro.
Componente
Serviço
E continue com sua solicitação http, exatamente como @ethemsulan.
Rota do lado do servidor
fonte
Você pode usar HttpParams de @ angular / common / http e passar uma string com a consulta. Por exemplo:
Agora no seu código
E isso funciona para você :)
Eu espero te ajudar
fonte
desde que você tenha instalado o jQuery , eu o
npm i jquery --save
incluoapps.scripts
noangular-cli.json
fonte
fonte
Você pode usar parâmetros de URL na documentação oficial.
Exemplo:
this.httpClient.get(this.API, { params: new HttpParams().set('noCover', noCover) })
fonte