← Kembali ke kursus
Pelajaran kursus · JavaScript
Pelajaran 47

AJAX: fetch di browser

Ambil data dari API tanpa reload + update DOM.

Pahami konsepnya

AJAX (Asynchronous JavaScript and XML — sekarang JSON) memungkinkan halaman mengambil data dari server TANPA reload. fetch() mengembalikan Promise; await memberi Response; response.json() memberi data. Setelah data tiba, update DOM dengan createElement/innerHTML.

Pola lengkapnya: (1) fetch ke API endpoint; (2) periksa response.ok; (3) parse JSON; (4) iterasi hasil dan bangun elemen DOM; (5) sisip ke container. Bungkus dengan async/await + try/catch untuk error handling.

CORS (Cross-Origin Resource Sharing) adalah kebijakan keamanan browser: fetch ke domain BERBEDA diblokir kecuali server mengizinkan lewat header Access-Control-Allow-Origin. Gunakan API publik yang sudah mengizinkan CORS, atau proxy server sendiri.

Coba contoh kode

<!doctype html>
<html>
<body>
  <ul id="hasil"></ul>
  <script>
    async function muatUser() {
      try {
        const resp = await fetch("https://jsonplaceholder.typicode.com/users");
        if (!resp.ok) throw new Error(`HTTP ${resp.status}`);

        const users = await resp.json();
        const ul = document.getElementById("hasil");

        users.slice(0, 5).forEach(u => {
          const li = document.createElement("li");
          li.textContent = `${u.name} — ${u.email}`;
          ul.appendChild(li);
        });
      } catch (e) {
        console.error("Gagal:", e.message);
      }
    }
    muatUser();
  </script>
</body>
</html>

fetch mengambil data dari API publik, json() mem-parsing, forEach membangun li untuk tiap user lalu appendChild menyisip. try/catch menangkap network error dan HTTP error.

Latihan singkat

Uji: simulasi fetch dengan Promise yang resolve data — tampilkan nama pertama.