Lompat ke konten Lompat ke sidebar Lompat ke footer

Contoh Ajax Menggunakan Fetch

Semacam yang telah kita tahu, fetch menggunakan promise dalam melaksanakan tugasnya, sehingga network request yang terbuat memakai fetch hendak senantiasa berjalan asynchronous.
Pemakaian dasar dari fetch tampak semacam ini:
20200313194951a9ddbc715b419aa9f5c19cfd5cb5ffae.png
Network request dicoba pada saat fungsi fetch() tereksekusi.

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


Bila request sukses diproses oleh server, guna fetch() hendak mengembalikan promise resolve serta bawa response object di dalamnya. Tetapi nilai response yang dibawa resolve belum selaku informasi JSON yang kita butuhkan, melainkan data menimpa response itu sendiri, semacam status code, sasaran url, headers, dsb. Hingga dari itu, buat memperoleh informasi JSON yang diperlukan, kita butuh mengganti response object ke dalam wujud 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() pula mengembalikan nilai Promise, sehingga kita memerlukan chaining promise dengan meningkatkan. then() buat memperoleh informasi JSON yang sebetulnya.

  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.  })


Kemudian jangan kurang ingat pula buat meningkatkan block catch() pada akhir chaining promise buat menanggulangi apabila rejected promise terjalin baik sebab guna fetch() ataupun 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.  });


Sebab fetch menggunakan promise, kita dapat menggunakan async/ await bila Kamu lebih suka dengan style penyusunan 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

Guna fetch() bisa menerima 2 buah parameter di dalamnya. Tidak hanya menetapkan sasaran URL, kita pula bisa membagikan options buat menetapkan method, header, body, dsb pada request yang hendak dijalankan. Tetapi pelaksanaan options ini bertabiat opsi. Tidak harus.
2020031320004200d4bfb205c4a5469bb6063092d38d30.png
Pemakaian fetch() tanpa mempraktikkan options hendak membuat GET request simpel yang ditujukkan pada targetUrl. Perihal tersebut sama semacam yang telah kita jalani tadinya. Lalu kapan kita butuh mempraktikkan options pada pemakaian fetch? Berikut sebagian permasalahan dikala kita memerlukannya.

Changing Request Method

Buat membuat POST request maupun method request yang lain kita butuh mempraktikkan 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 wujud string, contohnya “POST”,“PUT”,“DELETE”, dsb. Nilai default dari properti ini merupakan“ GET”, sehingga bila kita membuat GET Request, kita tidak butuh menetapkan nilai method secara eksplisit.

Set Header Property

Buat meningkatkan request header dengan fetch kita pakai properti headers pada options. Contohnya, buat meningkatkan properti Content-Type dengan nilai application/json pada headers kita bisa melaksanakannya dengan semacam ini:

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

  2.  method: "POST",

  3.  headers: {

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

  5.  }

  6. })


Pasti kita pula bisa 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

Buat mengirimkan informasi pada body request kita pakai properti body pada options, contohnya semacam 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 semacam XHR, informasi yang dikirimkan lewat body request butuh diganti jadi JSON String terlebih dulu.

  1. body: JSON.stringify({

  2.    id: 10,

  3.    title: "Edensor",

  4.    author: "Andrea Hirata"

  5. })


Contoh kode di atas bisa  kamu temukan pada tautan berikut https://repl.it/@dicodingacademy/163-06-AJAX-Fetch-Advanced?lite=true
Kamu dapat coba jalani POST Request memakai Fetch dengan melaksanakan potongan kode tersebut.

Posting Komentar untuk "Contoh Ajax Menggunakan Fetch"