Saya membuat permintaan HTTP pada Angular, tapi saya tidak tahu bagaimana menambahkan argumen url (string kueri) ke sana.
this.http.get(StaticSettings.BASE_URL).subscribe(
(response) => this.onGetForecastResult(response.json()),
(error) => this.onGetForecastError(error.json()),
() => this.onGetForecastComplete()
);
Sekarang StaticSettings.BASE_URL saya adalah sesuatu seperti url tanpa string kueri seperti: http://atsomeplace.com/ tapi saya ingin menjadi http://atsomeplace.com/?var1=val1&var2=val2
Di mana var1, dan var2 cocok pada objek permintaan Http saya? Saya ingin menambahkannya seperti objek.
{
query: {
var1: val1,
var2: val2
}
}
dan kemudian hanya modul Http melakukan pekerjaan untuk menguraikannya ke dalam string kueri URL.
http
angular
typescript
Miguel Lattuada
sumber
sumber
Jawaban:
Metode HttpClient memungkinkan Anda untuk mengatur params di opsi itu.
Anda dapat mengonfigurasinya dengan mengimpor HttpClientModule dari paket @ angular / common / http.
Setelah itu Anda bisa menyuntikkan HttpClient dan menggunakannya untuk melakukan permintaan.
Untuk versi sudut sebelum versi 4 Anda dapat melakukan hal yang sama menggunakan Http layanan .
The Http.get metode mengambil sebuah benda yang menerapkan RequestOptionsArgs sebagai parameter kedua.
Bidang pencarian objek itu dapat digunakan untuk mengatur string atau objek URLSearchParams .
Sebuah contoh:
Dokumentasi untuk kelas Http memiliki rincian lebih lanjut. Ini dapat ditemukan di sini dan contoh yang baik di sini .
sumber
http.get(url, {params: {var1: val1, var2: val2}})
search
properti telah dicabut dari 4.0.0 -> digunakanparams
sebagai gantinyaEdit Angular> = 4.3.x
HttpClient telah diperkenalkan bersama dengan HttpParams . Di bawah ini contoh penggunaan:
(Jawaban lama)
Edit Angular> = 4.x
requestOptions.search
telah ditinggalkan. GunakanrequestOptions.params
sebaliknya:Jawaban asli (Sudut 2)
Anda perlu mengimpor
URLSearchParams
seperti di bawah iniDan kemudian buat parameter Anda dan buat permintaan http sebagai berikut:
sumber
RequestOptions
. Saya memperbarui jawaban saya.search
. Memperbaiki masalah sayasearch
properti.Versi 5+
Dengan Angular 5 ke atas, Anda TIDAK harus menggunakan HttpParams . Anda dapat langsung mengirim objek json Anda seperti yang ditunjukkan di bawah ini.
Harap dicatat bahwa nilai data harus berupa string, yaitu;
{ params: {limit: "2"}}
Versi 4.3.x +
Gunakan HttpParams, HttpClient dari @ angular / common / http
Mungkin bisa membantu!
sumber
JSON.stringify()
Sudut 6
Anda dapat mengirimkan parameter yang diperlukan untuk mendapatkan panggilan dengan menggunakan params:
di mana x = {properti: "123"}.
Adapun fungsi api yang mencatat "123":
sumber
Contoh saya
Metode saya
dalam komponen saya
Oleh tukang pos
sumber
Pada Angular 7/8 terbaru, Anda dapat menggunakan pendekatan paling sederhana: -
sumber
searchParams
properti bukanstring
nilai.Jika Anda berencana mengirim lebih dari satu parameter.
Komponen
Layanan
Dan lanjutkan dengan permintaan http Anda seperti yang dilakukan @ethemsulan.
Rute sisi server
sumber
Anda dapat menggunakan HttpParams dari @ angular / common / http dan meneruskan string dengan kueri. Sebagai contoh:
Sekarang dalam kode Anda
Dan ini bekerja untuk Anda :)
Aku hoppe membantumu
sumber
asalkan Anda telah menginstal jQuery , saya lakukan
npm i jquery --save
dan sertakanapps.scripts
diangular-cli.json
sumber
sumber
Anda dapat menggunakan Parameter Url dari dokumentasi resmi.
Contoh:
this.httpClient.get(this.API, { params: new HttpParams().set('noCover', noCover) })
sumber