AJAX - Serverantwort
- Vorherige Seite AJAX-Anfrage
- Nächste Seite AJAX XML-Datei
Kursempfehlung:
readyState
onreadystatechange-Attribut
onreadystatechange
Attribute enthalten den Status von XMLHttpRequest.
status
Attribute definieren die Funktion, die bei Änderungen des readyState ausgeführt wird. HTTP Message Reference Manual
Attribute und
属性 | 描述 |
---|---|
onreadystatechange | Attribut enthält den Status des XMLHttpRequest-Objekts. |
readyState |
Definiert die Funktion, die aufgerufen wird, wenn sich der readyState-Attribut ändert.
|
status |
404: "Seite nicht gefunden" Für eine vollständige Liste besuchen Sie bitte |
HTTP Message Reference Manual | statusText |
wird der Status der Antwort zurückgegeben (z.B. "OK" oder "Not Found") jedes Mal
wenn der readyState ändert, wird die onreadystatechange-Funktion aufgerufen. readyState
für 4
,status
für 200
wenn, die Antwort bereit ist:
Beispiel
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(); }
Anmerkung:onreadystatechange
wird fünf Mal (0-4) ausgelöst, jedes Mal readyState
alle verändert.
Verwenden Sie Callback-Funktionen
Eine Callback-Funktion ist eine Funktion, die als Parameter an eine andere Funktion übergeben wird.
Wenn Ihre Website mehrere AJAX-Aufgaben hat, sollten Sie eine Funktion erstellen, um XMLHttpRequest-Objekte auszuführen, sowie eine Callback-Funktion für jede AJAX-Aufgabe.
该函数应当包含 URL 以及当响应就绪时调用的函数。
Beispiel
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) { // 行动在这里 } function myFunction2(xhttp) { // 行动在这里 }
服务器响应属性
属性 | 描述 |
---|---|
responseText | 获取字符串形式的响应数据 |
responseXML | 获取 XML 数据形式的响应数据 |
服务器响应方法
方法 | 描述 |
---|---|
getResponseHeader() | 从服务器返回特定的头部信息 |
getAllResponseHeaders() | 从服务器返回所有头部信息 |
responseText 属性
responseText
属性以 JavaScript 字符串的形式返回服务器响应,因此您可以这样使用它:
Beispiel
document.getElementById("demo").innerHTML = xhttp.responseText;
responseXML 属性
XML HttpRequest 对象有一个內建的 XML 解析器。
ResponseXML
属性以 XML DOM 对象返回服务器响应。
使用此属性,您可以把响应解析为 XML DOM 对象:
Beispiel
请求文件 music_list.xml,并对响应进行解析:
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();
Sie werden im DOM-Kapitel dieses Tutorials mehr über XML DOM lernen.
Die Methode getAllResponseHeaders()
getAllResponseHeaders()
Die Methode gibt alle Header-Informationen aus der Server-Antwort zurück.
Beispiel
var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("demo").innerHTML = this.getAllResponseHeaders(); } };
Die Methode getResponseHeader()
getResponseHeader()
Die Methode gibt spezifische Header-Informationen aus der Server-Antwort zurück.
Beispiel
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();
- Vorherige Seite AJAX-Anfrage
- Nächste Seite AJAX XML-Datei