Réponse du serveur AJAX
- Page précédente Requête AJAX
- Page suivante Fichier XML AJAX
Recommandation de cours :
readyState
L'attribut onreadystatechange
onreadystatechange
L'attribut conserve l'état de XMLHttpRequest.
status
L'attribut définit la fonction exécutée lorsque l'état readyState change. Référence du message HTTP
L'attribut et
属性 | 描述 |
---|---|
onreadystatechange | L'attribut contient l'état de l'objet XMLHttpRequest. |
readyState |
Définit la fonction appelée lorsque l'attribut readyState change.
|
status |
404: "Page non trouvée" Pour une liste complète, veuillez visiter |
Référence du message HTTP | statusText |
retourne le texte d'état (par exemple "OK" ou "Not Found") à chaque fois
lorsque, le readyState change, la fonction onreadystatechange est appelée. readyState
pour 4
,status
pour 200
lorsque, la réponse est prête :
Exemple
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(); }
Remarque :onreadystatechange
est déclenché cinq fois (0-4), chaque fois readyState
tous changent.
Utilisation de la fonction de rappel
Une fonction de rappel est une fonction qui est passée en paramètre à une autre fonction.
Si votre site web contient plusieurs tâches AJAX, vous devriez créer une fonction pour exécuter l'objet XMLHttpRequest et une fonction de rappel pour chaque tâche AJAX.
该函数应当包含 URL 以及当响应就绪时调用的函数。
Exemple
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 字符串的形式返回服务器响应,因此您可以这样使用它:
Exemple
document.getElementById("demo").innerHTML = xhttp.responseText;
responseXML 属性
XML HttpRequest 对象有一个內建的 XML 解析器。
ResponseXML
属性以 XML DOM 对象返回服务器响应。
使用此属性,您可以把响应解析为 XML DOM 对象:
Exemple
请求文件 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();
Vous apprendrez plus sur le XML DOM dans la section DOM de ce tutoriel.
Méthode getAllResponseHeaders()
getAllResponseHeaders()
La méthode retourne toutes les informations d'en-tête de la réponse du serveur.
Exemple
var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("demo").innerHTML = this.getAllResponseHeaders(); } };
Méthode getResponseHeader()
getResponseHeader()
La méthode retourne des informations spécifiques de l'en-tête de la réponse du serveur.
Exemple
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();
- Page précédente Requête AJAX
- Page suivante Fichier XML AJAX