AJAX - XMLHttpRequest Nesnesi
- Önceki Sayfa AJAX Tanıtımı
- Sonraki Sayfa AJAX İstekleri
XMLHttpRequest nesnesi AJAX'in temelidir.
- XMLHttpRequest nesnesi oluşturma
- Geri çağrı fonksiyonunu tanımlayın
- XMLHttpRequest nesnesi açma
- Sunucuya istek gönderme
XMLHttpRequest nesnesi
Tüm modern tarayıcılar destekler. XMLHttpRequest nesnesi.
XMLHttpRequest nesnesi, arka planda Web sunucusu ile veri alışverişinde kullanılabilir. Bu, web sayfasının tüm içeriğini yeniden yüklemek zorunda kalmadan kısmen güncellenebileceği anlamına gelir.
XMLHttpRequest nesnesi oluşturma
Tüm modern tarayıcılar (Chrome, Firefox, IE, Edge, Safari, Opera) 内 yerleşik XMLHttpRequest nesnesi.
XMLHttpRequest nesnesi oluşturma dilbilgisi:
variable = new XMLHttpRequest();
Geri çağrı fonksiyonunu tanımlayın
Geri çağrı fonksiyonu, bir başka fonksiyona parametre olarak geçirilen bir fonksiyondur.
Bu durumda, geri çağrı fonksiyonu, yanıt hazır olduğunda çalıştırılacak kodu içermelidir.
xhttp.onload = function() { // Yanıt hazır olduğunda ne yapılacağını belirleyin }
İstek gönderme
Sunucuya istek göndermek için, XMLHttpRequest nesnesinin open()
ve send()
Yöntem:
xhttp.open("GET", "ajax_info.txt"); xhttp.send();
Örnek
// XMLHttpRequest nesnesi oluşturun const xhttp = new XMLHttpRequest(); // Geri çağrı fonksiyonunu tanımlayın xhttp.onload = function() { // Burada verileri kullanabilirsiniz } // İstek gönderme xhttp.open("GET", "ajax_info.txt"); xhttp.send();
Çapraz alan erişimi (Access Across Domains)
Güvenlik nedenlerinden ötürü, modern tarayıcılar çapraz alan erişimini izin vermez.
Bu, web sayfası ve yüklemeye çalıştığı XML dosyasının aynı sunucuda olması anlamına gelir.
CodeW3C.com üzerindeki örnekler, CodeW3C.com alanında bulunan XML dosyalarını açar.
Eğer yukarıdaki örneği kendi web sayfanızdan biri üzerinde kullanmak istiyorsanız, yüklediğiniz XML dosyası kendi sunucunuzda olmalıdır.
XMLHttpRequest nesnesi yöntemleri
Yöntem | Açıklama |
---|---|
new XMLHttpRequest() | Yeni bir XMLHttpRequest nesnesi oluşturur. |
abort() | Geçerli istekyi iptal eder. |
getAllResponseHeaders() | Başlık bilgilerini döndürür. |
getResponseHeader() | Belirli başlık bilgilerini döndürür. |
open(method, url, async, user, psw) |
İstek belirler.
|
send() | GET istekleri için sunucuya istek göndermek için kullanılır. |
send(string) | POST istekleri için sunucuya istek göndermek için kullanılır. |
setRequestHeader() | Gönderilecek başlıklara etiket/değer çifti ekler. |
XMLHttpRequest nesnesi özellikleri
Özellik | Açıklama |
---|---|
onload | İstek (yüklenme) alındığında çağrılacak fonksiyonu tanımlar. |
onreadystatechange | readyState özelliği değiştiğinde çağrılacak fonksiyonu tanımlar. |
readyState |
XMLHttpRequest durumunu kaydet
|
responseText | String olarak yanıt veri döndürür |
responseXML | XML verileri olarak yanıt veri döndürür |
durum |
İstek durumunu döndüren numara
Tam liste için ziyaret edin Http Mesaj Referans Kılavuzu |
statusText | Durum metnini döndürür (örneğin "Tamam" veya "Bulunamadı") |
onload özelliği
XMLHttpRequest kullanırken, yanıt alındığında çalışacak bir geri çağrı fonksiyonu tanımlayabilirsiniz
XMLHttpRequest nesnesinin onload
Bu fonksiyonu tanımlayan özellikte
Örnek
xhttp.onload = function() { document.getElementById("demo").innerHTML = this.responseText; } xhttp.open("GET", "ajax_info.txt"); xhttp.send();
Çoklu geri çağrı fonksiyonları
Web sitesinde birden fazla AJAX görevi varsa, bir XMLHttpRequest nesnesi çalıştıran bir fonksiyon oluşturulmalı ve her AJAX görevi için bir geri çağrı fonksiyonu oluşturulmalıdır
Fonksiyon çağrısı, URL ve yanıt hazır olduğunda çağrılacak fonksiyonu içermelidir
Örnek
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) { // Burada eylem } function myFunction2(xhttp) { // Burada eylem }
onreadystatechange özelliği
readyState
Özellik, XMLHttpRequest'in durumunu kaydeder
onreadystatechange
Özellik, readyState değiştiğinde çalışacak bir geri çağrı fonksiyonu tanımlar
durum
Özellik ve statusText
Özellik, XMLHttpRequest nesnesinin durumunu kaydeder
Özellik | Açıklama |
---|---|
onreadystatechange | readyState özelliği değiştiğinde çağrılacak fonksiyonu tanımlar |
readyState |
XMLHttpRequest durumunu kaydet
|
durum |
İstek durumunu döndüren numara
Tam liste için ziyaret edin Http Mesaj Referans Kılavuzu |
statusText | statusText |
Dönüşüm statü metnini döndürür (örneğin "OK" veya "Bulunamadı").
her readyState değişiminde onreadystatechange fonksiyonu çağrılır. 4
ve status 200
için, yanıt hazır:
Örnek
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(); }
onreadystatechange olayı dört kez (1-4) tetiklendi, her seferinde readyState bir kez değişti.
- Önceki Sayfa AJAX Tanıtımı
- Sonraki Sayfa AJAX İstekleri