Skip to main content

Contoh Ajax Menggunakan Fetch

Seperti yang sudah kita ketahui, fetch memanfaatkan promise dalam melakukan tugasnya, sehingga network request yang dibuat menggunakan fetch akan selalu berjalan asynchronous.

Penggunaan dasar dari fetch tampak seperti ini:
20200313194951a9ddbc715b419aa9f5c19cfd5cb5ffae.png
Network request dilakukan pada saat fungsi fetch() tereksekusi.

  1. fetch("https://web-server-book-dicoding.appspot.com/list")


Jika request berhasil diproses oleh server, fungsi fetch() akan mengembalikan promise resolve dan membawa response object di dalamnya. Namun nilai response yang dibawa resolve belum sebagai data JSON yang kita butuhkan, melainkan informasi mengenai response itu sendiri, seperti status codetarget urlheaders, dsb. Maka dari itu, untuk mendapatkan data JSON yang dibutuhkan, kita perlu mengubah response object ke dalam bentuk JSON dengan memanggil method .json().

  1. fetch("https://web-server-book-dicoding.appspot.com/list")

  2.  .then(response => {

  3.    return response.json();

  4.  })


Method .json() juga mengembalikan nilai Promise, sehingga kita membutuhkan chaining promise dengan menambahkan .then() untuk mendapatkan data JSON yang sesungguhnya.

  1. fetch("https://web-server-book-dicoding.appspot.com/list")

  2.  .then(response => {

  3.    return response.json();

  4.  })

  5.  .then(responseJson => {

  6.    console.log(responseJson);

  7.  })


Lalu jangan lupa juga untuk menambahkan block catch() pada akhir chaining promise untuk menangani apabila rejected promise terjadi baik karena fungsi fetch() atau json().

  1. fetch("https://web-server-book-dicoding.appspot.com/list")

  2.  .then(response => {

  3.    return response.json();

  4.  })

  5.  .then(responseJson => {

  6.    console.log(responseJson);

  7.  })

  8.  .catch(error => {

  9.    console.log(error);

  10.  });


Karena fetch memanfaatkan promise, kita bisa memanfaatkan async/await jika Anda lebih suka dengan gaya penulisan synchronous.

  1. fetch("https://web-server-book-dicoding.appspot.com/list")

  2.  .then(response => {

  3.    return response.json();

  4.  })

  5.  .then(responseJson => {

  6.    console.log(responseJson);

  7.  })

  8.  .catch(error => {

  9.    console.log(error);

  10.  });




  1. async function getBooks() {

  2.  try {

  3.    const response = await fetch("https://web-server-book-dicoding.appspot.com/list");

  4.    const responseJson = await response.json();

  5.    console.log(responseJson);

  6.  } catch (error) {

  7.    console.log(error);

  8.  }

  9. }

  10.  

  11. getBooks();


Advanced Fetch Usage

Fungsi fetch() dapat menerima dua buah parameter di dalamnya. Selain menetapkan target URL, kita juga dapat memberikan options untuk menetapkan methodheaderbody, dsb pada request yang akan dijalankan. Namun penerapan options ini bersifat pilihan. Tidak wajib.
2020031320004200d4bfb205c4a5469bb6063092d38d30.png
Penggunaan fetch() tanpa menerapkan options akan membuat GET request sederhana yang ditujukkan pada targetUrl. Hal tersebut sama seperti yang sudah kita lakukan sebelumnya. Lantas kapan kita perlu menerapkan options pada penggunaan fetch? Berikut beberapa kasus saat kita memerlukannya.

Changing Request Method

Untuk membuat POST request ataupun method request lainnya kita perlu menerapkan options dengan properti method di dalamnya.

  1. fetch("https://web-server-book-dicoding.appspot.com/add", {

  2.  method: "POST"

  3. })


Nilai dari properti method dituliskan dalam bentuk string, contohnya “POST”“PUT”“DELETE”, dsb. Nilai default dari properti ini adalah “GET”, sehingga jika kita membuat GET Request, kita tidak perlu menetapkan nilai method secara eksplisit.

Set Header Property

Untuk menambahkan request header dengan fetch kita gunakan properti headers pada options. Contohnya, untuk menambahkan properti Content-Type dengan nilai application/json pada headers kita dapat melakukannya dengan seperti ini:

  1. fetch("https://web-server-book-dicoding.appspot.com/add", {

  2.  method: "POST",

  3.  headers: {

  4.    "Content-Type": "application/json"

  5.  }

  6. })


Tentu kita juga dapat menetapkan lebih dari satu properti pada headers. Contohnya kita tambahkan lagi properti X-Auth-Token dengan nilai 12345.

  1. fetch("https://web-server-book-dicoding.appspot.com/add", {

  2.  method: "POST",

  3.  headers: {

  4.    "Content-Type": "application/json",

  5.    "X-Auth-Token": "12345"

  6.  }

  7. })


Set Data to Body Request

Untuk mengirimkan data pada body request kita gunakan properti body pada options, contohnya seperti ini:

  1. fetch("https://web-server-book-dicoding.appspot.com/add", {

  2.  method: "POST",

  3.  headers: {

  4.    "Content-Type": "application/json",

  5.    "X-Auth-Token": "12345"

  6.  },

  7.  body: JSON.stringify({

  8.    id: 10,

  9.    title: "Edensor",

  10.    author: "Andrea Hirata"

  11.  })

  12. })


Sama seperti XHR, data yang dikirimkan melalui body request perlu diubah menjadi JSON String terlebih dahulu.

  1. body: JSON.stringify({

  2.    id: 10,

  3.    title: "Edensor",

  4.    author: "Andrea Hirata"

  5. })


Contoh kode di atas dapat Anda temukan pada tautan berikut https://repl.it/@dicodingacademy/163-06-AJAX-Fetch-Advanced?lite=true
Anda bisa coba lakukan POST Request menggunakan Fetch dengan menjalankan potongan kode tersebut.

Comments

Popular posts from this blog

Jasa Fogging Nyamuk Murah Bandung | 0857-4789-0221 - Garda Pest

  Memerlukan informasi tentang   Jasa Fogging Nyamuk Murah Bandung   ?   Garda pest Control Perusahaan pengendalian hama dan disinfeksi virus yang profesional dan untuk harga pasti terjangkau, dengan Layanan Cepat Berkualitas kami manjamin kepuasan pelanggan. Jasa Fogging Nyamuk Murah Bandung dan Berkualitas Artikel Lainya Tentang :  Virus Varian Terbaru Waspada Penularan Nyamuk Demam Berdarah (DBD) Waspada nyamuk di rumah Anda, mencegah lebih baik daripada mengobati. Lakukan tindakan pencegahan untuk mencegah populasi nyamuk dewasa dengan 3M Plus dan layanan gerimis nyamuk. Pilih layanan yang terbaik dan profesional, Dengan banyaknya perusahaan jasa fogging nyamuk murah dengan hasil yang mengecewakan kami sarankan pilihlah jasa yang profesional berpengalaman di bidang pengendalian hama. Garda Pest Control memiliki pengalaman lebih dari 10 tahun dalam pengendalian hama. Baca Juga Artikel Tentang :  Cara Mengusir Nyamuk di Rumah Mengapa Jasa Garda Pest Contr...

WA:0813-1344-4221 Jasa Disinfektan Covid Ciparigi Bogor

Hub: 0813-1344-4221 Jasa Disinfektan Covid Ciparigi Bogor, Jasa Semprot Disinfektan Ciparigi Bogor, Jasa Semprot Disinfektan Untuk Rumah Ciparigi Bogor, Jasa Semprot Disinfektan Untuk Rumah Ciparigi Bogor, Jasa Semprot Disinfektan di Ciparigi Bogor, Jasa Penyemprotan Disinfektan Ciparigi Bogor. Kami Juga melayani Jasa Fogging Nyamuk Tangerang, Jasa Fogging Nyamuk di Bali, Jasa Pembasmi Tikus Jogja, Jasa Pembasmi Tikus Solo, Jasa Pembasmi Tikus di Jogja, Jasa Pembasmi Kecoa di Apartement, Jasa Anti Rayap Bsd, Jasa Anti Rayap di Yogyakarta, Jasa Pembasmi Rayap di Cirebon dll...? Garda Pest Control ahlinya Proses sanitasi ketika penyemprotan disinfektan khusus sangat diperlukan untuk membersihkan ruangan dari beberapa virus, bakteri dan kuman yang membahayakan kesehatan. Secara teknis, keberadaan virus harus diamati meskipun bahkan ruang pribadi. Terutama dalam suasana pandemi ini. Karena beberapa jenis virus dapat memasuki tubuh kita, terutama dengan perantara udara inhalasi. Jika ruanga...

Staycation Surabaya: Hotel Swiss Belinn Manyar

Little A jumping on the bed Senin pagi, ketika kami pulang dari berakhir pekan di Malang, kami mendapati jalan di depan rumah kami sudah dipasangi terop. Rupanya tetangga mau punya hajatan. Acaranya mulai jam 6 sore. Kami tahunya juga dari spanduk yang terpasang karena si tetangga tidak bilang permisi sama sekali ke kami. Yo wes, nanti tinggal pergi aja sorenya biar nggak pusing kena bising. E ternyata cek sound sudah dimulai jam 9 pagi, dengan suara dentuman speaker raksasa yang menggetarkan jendela rumah kami. Little A yang kebetulan libur karena ada UN SD sampai takut dan teriak-teriak. Waduh, kalau begini caranya harus keluar rumah nih, sebelum gendang telinga kami meledak. Saya dengan cepat mengais-ngais promo/kupon/poin yang saya punya untuk booking hotel. Mendadak Staycation ! Saya ingat punya voucher dari apps booking hotel di HOTELQUICKLY. Apps yang bisa dipasang di iOS maupun Android ini memang khusus untuk pemesanan hotel yang mendadak, untuk malam ini atau besok malam. Jad...