AJAX - Objek XMLHttpRequest
- Hal Sebelumnya Ringkasan AJAX
- Hal Berikutnya Permintaan AJAX
Objek XMLHttpRequest adalah dasar AJAX.
- Membuat objek XMLHttpRequest
- Definisi fungsi balik (callback)
- Membuka objek XMLHttpRequest
- Mengirim permintaan ke server
Objek XMLHttpRequest
Semua browser modern mendukungnya Objek XMLHttpRequest.
Objek XMLHttpRequest dapat digunakan untuk berkomunikasi dengan server web di latar belakang. Ini berarti dapat memperbarui bagian konten halaman web tanpa perlu memuat kembali halaman seluruhnya.
Membuat objek XMLHttpRequest
Semua browser modern (Chrome, Firefox, IE, Edge, Safari, Opera) memiliki Objek XMLHttpRequest.
Sintaks untuk membuat objek XMLHttpRequest:
variable = new XMLHttpRequest();
Definisi fungsi balik (callback)
Fungsi balik (callback) adalah fungsi yang dipasang sebagai parameter ke fungsi lain.
Dalam kasus ini, fungsi balik (callback) harus mengandung kode yang akan dieksekusi saat tanggap balik siap.
xhttp.onload = function() { // Apa yang harus dilakukan saat tanggap balik siap }
Kirim permintaan
Untuk mengirim permintaan ke server, Anda dapat menggunakan objek XMLHttpRequest. open()
dan send()
Metode:
xhttp.open("GET", "ajax_info.txt"); xhttp.send();
Contoh
// Buat objek XMLHttpRequest const xhttp = new XMLHttpRequest(); // Definisi fungsi balik (callback) xhttp.onload = function() { // Anda dapat menggunakan data di sini } // Kirim permintaan xhttp.open("GET", "ajax_info.txt"); xhttp.send();
Akses Antar Domain (Cross Domain Access)
Karena alasan keamanan, browser modern saat ini tidak mengizinkan akses antar domain.
Artinya halaman web dan berkas XML yang dia coba muat harus berada di server yang sama.
Contoh di CodeW3C.com membuka berkas XML yang berada di domain CodeW3C.com.
Jika Anda ingin menggunakan contoh di salah satu halaman web Anda, berkas XML yang Anda muat harus berada di server pribadi Anda.
Metode objek XMLHttpRequest
Metode | Deskripsi |
---|---|
new XMLHttpRequest() | Buat objek XMLHttpRequest baru. |
abort() | Batalkan permintaan saat ini. |
getAllResponseHeaders() | Kembalikan informasi header. |
getResponseHeader() | Kembalikan informasi header khusus. |
open(method, url, async, user, psw) |
Tentukan permintaan.
|
send() | Kirim permintaan ke server, digunakan untuk permintaan GET. |
send(string) | Kirim permintaan ke server, digunakan untuk permintaan POST. |
setRequestHeader() | Tambahkan pasangan tag/nilai ke header yang akan dikirim. |
Atribut objek XMLHttpRequest
Atribut | Deskripsi |
---|---|
onload | Definisi fungsi yang dipanggil saat menerima permintaan (memuat). |
onreadystatechange | Definisi fungsi yang dipanggil saat atribut readyState berubah. |
readyState |
Simpan status XMLHttpRequest
|
responseText | Kembalikan data tanggapan dalam bentuk string |
responseXML | Kembalikan data tanggapan dalam bentuk data XML |
status |
Kembalikan nomor status permintaan
Untuk daftar lengkap silakan kunjungi Referensi Pesan HTTP |
statusText | Kembalikan teks status (seperti "OK" atau "Tidak Ditemukan") |
Atribut onload
Dengan menggunakan objek XMLHttpRequest, Anda dapat mendefiniskan fungsi panggilan kembali untuk dieksekusi saat tanggapan diterima
Silakan definiskan fungsi panggilan kembali dalam objek XMLHttpRequest onload
Fungsi ini didefiniskan dalam atribut:
Contoh
xhttp.onload = function() { document.getElementById("demo").innerHTML = this.responseText; } xhttp.open("GET", "ajax_info.txt"); xhttp.send();
Beberapa fungsi panggilan kembali
Jika ada beberapa tugas AJAX di situs web, maka harus dibuat fungsi untuk eksekusi objek XMLHttpRequest dan membuat fungsi panggilan kembali untuk setiap tugas AJAX
Panggilan fungsi harus mengandung URL serta fungsi yang akan dieksekusi saat tanggapan siap
Contoh
loadDoc("url-1", myFunction1); loadDoc("url-2", myFunction2); function loadDoc(url, cFunction) { const xhttp = new XMLHttpRequest(); xhttp.onload = function() {cFunction(this);} xhttp.open("GET", url); xhttp.send(); } function myFunction1(xhttp) { // Disini adalah aksi } function myFunction2(xhttp) { // Disini adalah aksi }
Atribut onreadystatechange
readyState
Atribut menyimpan status XMLHttpRequest
onreadystatechange
Atribut mendefinisikan fungsi panggilan kembali, yang dieksekusi saat readyState berubah
status
Atribut dan statusText
Atribut menyimpan status objek XMLHttpRequest
Atribut | Deskripsi |
---|---|
onreadystatechange | Definiskan fungsi yang dipanggil saat atribut readyState berubah |
readyState |
Simpan status XMLHttpRequest
|
status |
Kembalikan nomor status permintaan
Untuk daftar lengkap silakan kunjungi Referensi Pesan HTTP |
statusText | statusText |
Kembalikan teks status (contoh "OK" atau "Not Found").
Setiap kali readyState berubah, fungsi onreadystatechange akan dipanggil. 4
dan status adalah 200
Ketika, tanggapannya siap:
Contoh
function loadDoc() { const xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("demo").innerHTML = this.responseText; } }; xhttp.open("GET", "ajax_info.txt"); xhttp.send(); }
Peristiwa onreadystatechange dijalankan empat kali (1-4), setiap kali perubahan readyState sekali.
- Hal Sebelumnya Ringkasan AJAX
- Hal Berikutnya Permintaan AJAX