AJAX原理
AJAX原理同步和异步的区别XmlHttp基本介绍
XmlHttp对象参考属性
* 表示此属性是W3C文档对象模型的扩展. onreadystatechange指定当readyState属性改变时的事件处理句柄 语法oXMLHttpRequest.onreadystatechange = funcMyHandler; Example var xmlhttp=null;
function PostOrder(xmldoc) {
var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP.5.0");
xmlhttp.Open("POST","http://myserver/orders/processorder.asp",false);
xmlhttp.onreadystatechange= HandleStateChange;
xmlhttp.Send(xmldoc);
myButton.disabled = true;
}
function HandleStateChange() {
if (xmlhttp.readyState == 4)
{
myButton.disabled = false;
alert("Result = " + xmlhttp.responseXML.xml);
}
}
备注此属性只写,为W3C文档对象模型的扩展. readyState返回XMLHTTP请求的当前状态 语法lValue = oXMLHttpRequest.readyState; Example var XmlHttp;
XmlHttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
function send() {
XmlHttp.onreadystatechange = doHttpReadyStateChange;
XmlHttp.open("GET","http://localhost/sample.xml",true);
XmlHttp.send();
}
function doHttpReadyStateChange() {
if (XmlHttp.readyState == 4) {
alert("Done");
}
}
备注变量,此属性只读,状态用长度为4的整型表示.定义如下:
responseBody返回某一格式的服务器响应数据 语法strValue = oXMLHttpRequest.responseBody; Example var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
xmlhttp.open("GET","http://localhost/books.xml",false);
xmlhttp.send();
alert(xmlhttp.responseBody);
备注变量,此属性只读,以unsigned array格式表示直接从服务器返回的未经解码的二进制数据。 responseStream以Ado Stream对象的形式返回响应信息 语法strValue = oXMLHttpRequest.responseStream; 备注变量,此属性只读,以Ado Stream对象的形式返回响应信息。 responseText将响应信息作为字符串返回 语法strValue = oXMLHttpRequest.responseText; Example var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
xmlhttp.open("GET",false);
xmlhttp.send();
alert(xmlhttp.responseText);
备注变量,此属性只读,将响应信息作为字符串返回。 XMLHTTP尝试将响应信息解码为Unicode字符串,XMLHTTP默认将响应数据的编码定为UTF-8,如果服务器返回的数据带BOM(byte-order mark),XMLHTTP可以解码任何UCS-2 (big or little endian)或者UCS-4 数据。注意,如果服务器返回的是xml文档,此属性并不处理xml文档中的编码声明。你需要使用responseXML来处理。 responseXML将响应信息格式化为Xml Document对象并返回 语法var objDispatch = oXMLHttpRequest.responseXML;
Example var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
xmlhttp.open("GET",false);
xmlhttp.send();
alert(xmlhttp.responseXML.xml);
备注变量,此属性只读,将响应信息格式化为Xml Document对象并返回。如果响应数据不是有效的XML文档,此属性本身不返回XMLDOMParseError,可以通过处理过的DOMDocument对象获取错误信息。 status返回当前请求的http状态码 语法lValue = oXMLHttpRequest.status; Example var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
xmlhttp.open("GET",false);
xmlhttp.send();
alert(xmlhttp.status);
返回值
备注长整形,此属性只读,返回当前请求的http状态码,此属性仅当数据发送并接收完毕后才可获取。 statusText返回当前请求的响应行状态 语法strValue = oXMLHttpRequest.statusText; Example var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
xmlhttp.open("GET",false);
xmlhttp.send();
alert(xmlhttp.statusText);
备注字符串,此属性只读,以BSTR返回当前请求的响应行状态,此属性仅当数据发送并接收完毕后才可获取。 方法
abort取消当前请求 语法
备注调用此方法后,当前请求返回UNINITIALIZED 状态。 getAllResponseHeaders获取响应的所有http头 语法strValue = oXMLHttpRequest.getAllResponseHeaders(); Example var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
xmlhttp.open("GET",false);
xmlhttp.send();
alert(xmlhttp.getAllResponseHeaders());
输出由web服务器返回的http头信息,example:
Server:Microsoft-IIS/5.1
X-Powered-By:ASP.NET
Date:Sat,07 Jun 2003 23:23:06 GMT
Content-Type:text/xml
Accept-Ranges:bytes
Last Modified:Sat,06 Jun 2003 17:19:04 GMT
ETag:"a0e2eeba4f2cc31:97f"
Content-Length:9
备注每个http头名称和值用冒号分割,并以rn结束。当send方法完成后才可调用该方法。 getResponseHeader从响应信息中获取指定的http头 语法strValue = oXMLHttpRequest.getResponseHeader(bstrHeader); Example var xmlhttp = new ActiveXObject("MSXML2.XMLHTTP.3.0");
xmlhttp.open("GET",false);
xmlhttp.send();
alert(xmlhttp.getResponseHeader("Server"));
输出http头中的server列:当前web服务器的版本及名称。
备注当send方法成功后才可调用该方法。如果服务器返回的文档类型为” open创建一个新的http请求,并指定此请求的方法、URL以及验证信息 语法oXMLHttpRequest.open(bstrMethod,bstrUrl,varAsync,bstrUser,bstrPassword); 参数
Example var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
xmlhttp.open("GET",false);
xmlhttp.send();
var book = xmlhttp.responseXML.selectSingleNode("//book[@id='bk101']");
alert(book.xml);
备注调用此方法后,可以调用send方法向服务器发送数据。 send发送请求到http服务器并接收回应 语法oXMLHttpRequest.send(varBody); 参数
Example xmlhttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
xmlhttp.open("GET",false);
xmlhttp.send();
alert(xmlhttp.responseXML.xml);
备注此方法的同步或异步方式取决于open方法中的bAsync参数,如果bAsync == False,此方法将会等待请求完成或者超时时才会返回,如果bAsync == True,此方法将立即返回。 如果发送的数据为BSTR,则回应被编码为utf-8,必须在适当位置设置一个包含charset的文档类型头。 如果发送的数据为XML DOM object,则回应将被编码为在xml文档中声明的编码,如果在xml文档中没有声明编码,则使用默认的UTF-8。 setRequestHeader单独指定请求的某个http头 语法oXMLHttpRequest.setRequestHeader(bstrHeader,bstrValue); 参数
备注如果已经存在已此名称命名的http头,则覆盖之。此方法必须在open方法后调用。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |