Je crée une requête HTTP sur Angular, mais je ne sais pas comment y ajouter des arguments d'URL (chaîne de requête).
this.http.get(StaticSettings.BASE_URL).subscribe(
(response) => this.onGetForecastResult(response.json()),
(error) => this.onGetForecastError(error.json()),
() => this.onGetForecastComplete()
);
Maintenant, mon StaticSettings.BASE_URL est quelque chose comme une URL sans chaîne de requête comme: http://atsomeplace.com/ mais je veux que ce soit http://atsomeplace.com/?var1=val1&var2=val2
Où var1 et var2 tiennent-ils sur mon objet de demande Http? Je veux les ajouter comme un objet.
{
query: {
var1: val1,
var2: val2
}
}
puis juste le module Http fait le travail pour l'analyser dans la chaîne de requête URL.
http
angular
typescript
Miguel Lattuada
la source
la source
Réponses:
Les méthodes HttpClient vous permettent de définir les paramètres dans ses options.
Vous pouvez le configurer en important le HttpClientModule à partir du package @ angular / common / http.
Après cela, vous pouvez injecter le HttpClient et l'utiliser pour faire la demande.
Pour les versions angulaires antérieures à la version 4, vous pouvez faire de même en utilisant le service Http .
La méthode Http.get prend un objet qui implémente RequestOptionsArgs comme deuxième paramètre.
Le champ de recherche de cet objet peut être utilisé pour définir une chaîne ou un objet URLSearchParams .
Un exemple:
La documentation de la classe Http contient plus de détails. Il peut être trouvé ici et un exemple de travail ici .
la source
http.get(url, {params: {var1: val1, var2: val2}})
search
la propriété a été supprimée de 4.0.0 -> utiliser à laparams
placeModifier angulaire> = 4.3.x
HttpClient a été introduit avec HttpParams . Ci-dessous un exemple d'utilisation:
(Anciennes réponses)
Modifier angulaire> = 4.x
requestOptions.search
est obsolète. UtilisezrequestOptions.params
plutôt:Réponse originale (angulaire 2)
Vous devez importer
URLSearchParams
comme ci-dessousEt puis créez vos paramètres et effectuez la demande http comme suit:
la source
RequestOptions
. J'ai mis à jour ma réponse.search
. Correction de mon problèmesearch
propriété.Version 5+
Avec Angular 5 et plus, vous n'avez PAS besoin d'utiliser HttpParams . Vous pouvez envoyer directement votre objet json comme indiqué ci-dessous.
Veuillez noter que les valeurs des données doivent être des chaînes, c'est-à-dire;
{ params: {limit: "2"}}
Version 4.3.x +
Utilisez HttpParams, HttpClient de @ angular / common / http
Pourrait aider certains!
la source
JSON.stringify()
Angulaire 6
Vous pouvez transmettre les paramètres nécessaires pour obtenir l'appel en utilisant des paramètres:
où x = {propriété: "123"}.
Quant à la fonction api qui enregistre "123":
la source
Mon exemple
Ma méthode
dans ma composante
Par facteur
la source
Dans le dernier Angular 7/8, vous pouvez utiliser l'approche la plus simple: -
la source
searchParams
propriétés n'est pas unestring
valeur.Si vous prévoyez d'envoyer plusieurs paramètres.
Composant
Un service
Et continuez avec votre demande http comme l'a fait @ethemsulan.
Route côté serveur
la source
Vous pouvez utiliser HttpParams à partir de @ angular / common / http et passer une chaîne avec la requête. Par exemple:
Maintenant dans votre code
Et cela fonctionne pour vous :)
J'espère vous aider
la source
à condition que vous ayez installé jQuery , je le fais
npm i jquery --save
et l'inclusapps.scripts
dansangular-cli.json
la source
la source
Vous pouvez utiliser les paramètres d'URL de la documentation officielle.
Exemple:
this.httpClient.get(this.API, { params: new HttpParams().set('noCover', noCover) })
la source