这个就绪状态属性保存 XMLHttpRequest 的状态。
这个就绪状态改变属性定义了当readyState改变时要执行的函数。
这个地位属性和状态文本属性保存 XMLHttpRequest 对象的状态。
Property | Description |
---|---|
onreadystatechange | Defines a function to be called when the readyState property changes |
readyState | Holds the status of the XMLHttpRequest. 0: request not initialized 1: server connection established 2: request received 3: processing request 4: request finished and response is ready |
status | 200: "OK" 403: "Forbidden" 404: "Page not found" For a complete list go to the Http Messages Reference |
statusText | Returns the status-text (e.g. "OK" or "Not Found") |
每次readyState改变时都会调用onreadystatechange函数。
当readyState为4且status为200时,响应就绪:
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();
}
亲自试一试 »
上面示例中使用的 "ajax_info.txt" 文件是一个简单的文本文件,如下所示:
<h1>AJAX</h1>
<p>AJAX is not a programming language.</p>
<p>AJAX is a technique for accessing web servers from a web page.</p>
<p>AJAX stands for Asynchronous JavaScript And XML.</p>
onreadystatechange 事件被触发四次 (1-4),readyState 每次更改一次。
回调函数是作为参数传递给另一个函数的函数。
如果网站中有多个 AJAX 任务,则应创建一个用于执行 XMLHttpRequest 对象的函数,并为每个 AJAX 任务创建一个回调函数。
函数调用应包含 URL 以及响应准备好时要调用的函数。
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) {
// action goes here
}
function myFunction2(xhttp) {
// action goes here
}
亲自试一试 »
Property | Description |
---|---|
responseText | get the response data as a string |
responseXML | get the response data as XML data |
Method | Description |
---|---|
getResponseHeader() | Returns specific header information from the server resource |
getAllResponseHeaders() | Returns all the header information from the server resource |
这个响应文本属性以 JavaScript 字符串形式返回服务器响应,您可以相应地使用它:
XML HttpRequest 对象有一个内置的 XML 解析器。
这个响应XML属性以 XML DOM 对象的形式返回服务器响应。
使用此属性,您可以将响应解析为 XML DOM 对象:
索取文件cd_catalog.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", "cd_catalog.xml", true);
xhttp.send();
亲自试一试 »
您将在本教程的 DOM 章节中了解有关 XML DOM 的更多信息。
这个获取所有响应头()方法返回服务器响应的所有标头信息。
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("demo").innerHTML =
this.getAllResponseHeaders();
}
};
亲自试一试 »
这个获取响应头()方法从服务器响应中返回特定的标头信息。
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();
亲自试一试 »
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!