Ich erstelle eine HTTP-Anforderung für Angular, weiß jedoch nicht, wie ich URL-Argumente (Abfragezeichenfolge) hinzufügen soll.
this.http.get(StaticSettings.BASE_URL).subscribe(
(response) => this.onGetForecastResult(response.json()),
(error) => this.onGetForecastError(error.json()),
() => this.onGetForecastComplete()
);
Jetzt ist meine StaticSettings.BASE_URL so etwas wie eine URL ohne Abfragezeichenfolge wie: http://atsomeplace.com/, aber ich möchte, dass es http://atsomeplace.com/?var1=val1&var2=val2 ist
Wo passen var1 und var2 auf mein HTTP-Anforderungsobjekt? Ich möchte sie wie ein Objekt hinzufügen.
{
query: {
var1: val1,
var2: val2
}
}
und dann erledigt nur das HTTP-Modul die Aufgabe, es in eine URL-Abfragezeichenfolge zu analysieren.
http
angular
typescript
Miguel Lattuada
quelle
quelle
Antworten:
Mit den HttpClient- Methoden können Sie die Parameter in den Optionen festlegen .
Sie können es konfigurieren, indem Sie das HttpClientModule aus dem Paket @ angle / common / http importieren .
Danach können Sie den HttpClient injizieren und ihn zur Ausführung der Anforderung verwenden.
Für Winkelversionen vor Version 4 können Sie dasselbe mit dem HTTP- Dienst tun .
Die Http.get- Methode verwendet ein Objekt, das RequestOptionsArgs als zweiten Parameter implementiert .
Das Suchfeld dieses Objekts kann zum Festlegen einer Zeichenfolge oder eines URLSearchParams- Objekts verwendet werden.
Ein Beispiel:
Die Dokumentation für die HTTP- Klasse enthält weitere Details. Es finden Sie hier und ein Arbeitsbeispiel hier .
quelle
http.get(url, {params: {var1: val1, var2: val2}})
search
Eigentum wurde von 4.0.0 beraubt ->params
stattdessen verwendenWinkel bearbeiten> = 4.3.x.
HttpClient wurde zusammen mit HttpParams eingeführt . Unten ein Anwendungsbeispiel:
(Alte Antworten)
Winkel bearbeiten> = 4.x.
requestOptions.search
wurde veraltet. Verwenden SierequestOptions.params
stattdessen:Ursprüngliche Antwort (Winkel 2)
Sie müssen
URLSearchParams
wie unten importierenErstellen Sie dann Ihre Parameter und stellen Sie die http-Anforderung wie folgt:
quelle
RequestOptions
. Ich habe meine Antwort aktualisiert.search
. Behoben mein Problemsearch
Eigenschaft anzuhängen .Version 5+
Ab Angular 5 müssen Sie KEINE HttpParams verwenden . Sie können Ihr JSON-Objekt wie unten gezeigt direkt senden.
Bitte beachten Sie, dass Datenwerte Zeichenfolge sein sollten, dh;
{ params: {limit: "2"}}
Version 4.3.x +
Verwenden Sie HttpParams, HttpClient von @ angle / common / http
Könnte einigen helfen!
quelle
JSON.stringify()
Winkel 6
Sie können die für den Aufruf erforderlichen Parameter mit folgenden Parametern übergeben:
Dabei ist x = {Eigenschaft: "123"}.
Wie für die API-Funktion, die "123" protokolliert:
quelle
Mein Beispiel
Meine Methode
in meiner Komponente
Mit dem Postboten
quelle
In Angular 7/8 können Sie den einfachsten Ansatz verwenden: -
quelle
searchParams
Eigenschaften keinestring
Werte sind.Wenn Sie mehr als einen Parameter senden möchten.
Komponente
Bedienung
Und fahren Sie mit Ihrer http-Anfrage fort, genau wie @ethemsulan.
Serverseitige Route
quelle
Sie können HttpParams aus @ angle / common / http verwenden und eine Zeichenfolge mit der Abfrage übergeben. Zum Beispiel:
Jetzt in deinem Code
Und das funktioniert bei dir :)
Ich hoffe dir zu helfen
quelle
vorausgesetzt, Sie haben jQuery installiert , mache ich
npm i jquery --save
und schließe inapps.scripts
einangular-cli.json
quelle
quelle
Sie können URL-Parameter verwenden aus der offiziellen Dokumentation verwenden.
Beispiel:
this.httpClient.get(this.API, { params: new HttpParams().set('noCover', noCover) })
quelle