AJAX - serverns svar
- Föregående sida AJAX-förfrågan
- Nästa sida AJAX XML-fil
onreadystatechange-egenskapen
readyState
Egenskapen bevarar XMLHttpRequest-statusen.
onreadystatechange
egenskapen definierar vilken funktion som körs när readyState ändras.
status
Egenskapen och statusText
Egenskapen innehåller XMLHttpRequest-objektets status.
Egenskap | Beskrivning |
---|---|
onreadystatechange | Definierar vilken funktion som anropas när readyState-egenskapen ändras. |
readyState |
Sparade XMLHttpRequest-statusen.
|
status |
För en fullständig lista, besök Http meddelandes referenshandbok |
statusText | återkommer statusmeddelandet (t.ex. "OK" eller "Not Found") |
varje gång readyState ändras, anropas onreadystatechange-funktionen.
när readyState
för 4
,status
för 200
när, svaret är klart:
Exempel
function loadDoc() { var 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", true); xhttp.send(); }
Kommentar:onreadystatechange
utlösas fem gånger (0-4), varje gång readyState
alla ändras.
Använda callback-funktioner
En callback-funktion är en funktion som överförs som parameter till en annan funktion.
Om din webbplats har flera AJAX-uppgifter, bör du skapa en funktion som utför XMLHttpRequest-objektet samt en callback-funktion för varje AJAX-uppgift.
Denna funktion bör innehålla URL och den funktion som ska anropas när svaret är klart.
Exempel
loadDoc("url-1", myFunction1); loadDoc("url-2", myFunction2); function loadDoc(url, cFunction) { var xhttp; xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { cFunction(this); } }; xhttp.open("GET", url, true); xhttp.send(); } function myFunction1(xhttp) { // Handling här } function myFunction2(xhttp) { // Handling här }
Serverns svarsegenskaper
Egenskap | Beskrivning |
---|---|
responseText | Hämta responsdata i strängformat |
responseXML | Hämta responsdata i XML-format |
Serverns svarmetod
Metod | Beskrivning |
---|---|
getResponseHeader() | Returnera specifik huvudinformation från servern |
getAllResponseHeaders() | Returnera alla huvudinformation från servern |
responseText-attributet
responseText
Egenskapen returnerar serverns svar i form av en JavaScript-sträng, så du kan använda den på detta sätt:
Exempel
document.getElementById("demo").innerHTML = xhttp.responseText;
responseXML-attributet
XML HttpRequest-objektet har en inbyggd XML-parser.
ResponseXML
Egenskapen returnerar serverns svar som en XML DOM-objekt.
Använd detta attribut för att returnera svaret som en XML DOM-objekt.AnalyseraFör XML DOM-objekt:
Exempel
Förfrågan om fil music_list.xml,och analysera svaret:
xmlDoc = xhttp.responseXML; txt = ""; x = xmlDoc.getElementsByTagName("ARTIST"); for (i = 0; i < x.length; i++) { txt += x[i].childNodes[0].nodeValue + "<br>"; } document.getElementById("demo").innerHTML = txt; xhttp.open("GET", "music_list.xml", true); xhttp.send();
Du kommer att lära dig mer om XML DOM i DOM-kapitlet i denna tutorial.
getAllResponseHeaders() metod
getAllResponseHeaders()
Metoden returnerar alla huvudinformation från serverns svar.
Exempel
var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("demo").innerHTML = this.getAllResponseHeaders(); } };
getResponseHeader() metod
getResponseHeader()
Metoden returnerar specifik huvudinformation från serverns svar.
Exempel
var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("demo").innerHTML = this.getResponseHeader("Last-Modified"); } }; xhttp.open("GET", "ajax_info.txt", true); xhttp.send();
- Föregående sida AJAX-förfrågan
- Nästa sida AJAX XML-fil