您的位置:首页 > 理论基础 > 计算机网络

XMLHTTPRequest的属性和方法简介

2013-12-25 14:40 435 查看
<html>

<head>

<title>XMLHTTPRequest对象的说明DEMO</title>

<script language="javascript"
type="text/javascript">

<!--
var xmlhttp;
//
创建一个XMLHTTPRequest对象
function createXMLHTTPRequext(){

     
if(window.ActiveXObject)//
判断是否支持ActiveX控件

     
 {

          
xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');

     
// 通过实例化ActiveXObject的一个新实例来创建XMLHTTPRequest对象

      
}

    else
if(window.XMLHTTPRequest)//
判断是否把XMLHTTPRequest实现为一个本地javascript对象

     
{

      
xmlhttp = new XMLHTTPRequest();//
创建XMLHTTPRequest的一个实例(本地javascript对象)

      }

}

function PostOrder(xmldoc)

{

   
createXMLHTTPRequext();
   

    //
方法:open

    //
创建一个新的http请求,并指定此请求的方法、URL以及验证信息

    //
语法:oXMLHttpRequest.open(bstrMethod, bstrUrl, varAsync, bstrUser,
bstrPassword);

    // 参数

    //
bstrMethod

    //
http方法,例如:POST、GET、PUT及PROPFIND。大小写不敏感。

    //
bstrUrl

    //
请求的URL地址,可以为绝对地址也可以为相对地址。

    //
varAsync[可选]

    //
布尔型,指定此请求是否为异步方式,默认为true。如果为真,当状态改变时会调用onreadystatechange属性指定的回调函数。

    //
bstrUser[可选]

    //
如果服务器需要验证,此处指定用户名,如果未指定,当服务器需要验证时,会弹出验证窗口。

    //
bstrPassword[可选]

    //
验证信息中的密码部分,如果用户名为空,则此值将被忽略。

    

    //
备注:调用此方法后,可以调用send方法向服务器发送数据。

   xmlhttp.Open("get", "http://localhost/example.htm",
false);
   
// var book =
xmlhttp.responseXML.selectSingleNode("//book[@id='bk101']");

    //
alert(book.xml);

   

    //
属性:onreadystatechange

    //
onreadystatechange:指定当readyState属性改变时的事件处理句柄

    //
语法:oXMLHttpRequest.onreadystatechange = funcMyHandler;

    //
如下的例子演示当XMLHTTPRequest对象的readyState属性改变时调用HandleStateChange函数,

    //
当数据接收完毕后(readystate == 4)此页面上的一个按钮将被激活

    //
备注:此属性只写,为W3C文档对象模型的扩展.

   xmlhttp.onreadystatechange=
HandleStateChange;

   

    //
方法:send

    //
发送请求到http服务器并接收回应

    //
语法:oXMLHttpRequest.send(varBody);

    //
参数:varBody (欲通过此请求发送的数据。)

    //
备注:此方法的同步或异步方式取决于open方法中的bAsync参数,如果bAsync ==
False,此方法将会等待请求完成或者超时时才会返回,如果bAsync ==
True,此方法将立即返回。  

    //
如果发送的数据为BSTR,则回应被编码为utf-8,
必须在适当位置设置一个包含charset的文档类型头。 

    //
如果发送的数据为XML DOM
object,则回应将被编码为在xml文档中声明的编码,如果在xml文档中没有声明编码,则使用默认的UTF-8。 

   xmlhttp.Send(xmldoc);
   

    //
方法:getAllResponseHeaders

    //
获取响应的所有http头

    //
语法:strValue = oXMLHttpRequest.getAllResponseHeaders();

    //
备注:每个http头名称和值用冒号分割,并以\r\n结束。当send方法完成后才可调用该方法。

   
alert(xmlhttp.getAllResponseHeaders());

    //
方法:getResponseHeader

    //
从响应信息中获取指定的http头

    //
语法:strValue = oXMLHttpRequest.getResponseHeader(bstrHeader);

    //
备注:当send方法成功后才可调用该方法。如果服务器返回的文档类型为"text/xml", 则这句话

    //
xmlhttp.getResponseHeader("Content-Type");将返回字符串"text/xml"。可以使用getAllResponseHeaders方法获取完整的http头信息。

   
alert(xmlhttp.getResponseHeader("Content-Type")); //
输出http头中的Content-Type列:当前web服务器的版本及名称。

   

   

   document.frmTest.myButton.disabled =
true;
   
// 方法:abort

    //
取消当前请求

    //
语法:oXMLHttpRequest.abort();

    //
备注:调用此方法后,当前请求返回UNINITIALIZED 状态。

    //
xmlhttp.abort();

   

    //
方法:setRequestHeader

    //
单独指定请求的某个http头

    //
语法:oXMLHttpRequest.setRequestHeader(bstrHeader, bstrValue);

    //
参数:bstrHeader(字符串,头名称。)

   
//      
bstrValue(字符串,值。)

    //
备注:如果已经存在已此名称命名的http头,则覆盖之。此方法必须在open方法后调用。

    //
xmlhttp.setRequestHeader(bstrHeader, bstrValue);

}
function HandleStateChange()

{
     
// 属性:readyState

    //
返回XMLHTTP请求的当前状态

    // 语法:lValue
= oXMLHttpRequest.readyState;

    //
备注:变量,此属性只读,状态用长度为4的整型表示.定义如下:

    // 0 (未初始化)
对象已建立,但是尚未初始化(尚未调用open方法)

    // 1 (初始化)
对象已建立,尚未调用send方法

    // 2 (发送数据)
send方法已调用,但是当前的状态及http头未知

    // 3 (数据传送中)
已接收部分数据,因为响应及http头不全,这时通过responseBody和responseText获取部分数据会出现错误,

    // 4 (完成)
数据接收完毕,此时可以通过通过responseBody和responseText获取完整的回应数据

   if (xmlhttp.readyState == 4){

      
document.frmTest.myButton.disabled =
false;
      

        
// 属性:responseBody

      
// 返回某一格式的服务器响应数据

      
// 语法:strValue = oXMLHttpRequest.responseBody;

      
// 备注:变量,此属性只读,以unsigned array格式表示直接从服务器返回的未经解码的二进制数据。

      
alert(xmlhttp.responseBody);
      

      
// 属性:responseStream

      
// 以Ado Stream对象的形式返回响应信息

      
// 语法:strValue = oXMLHttpRequest.responseStream;

      
// 备注:变量,此属性只读,以Ado Stream对象的形式返回响应信息。

      alert(xmlhttp.responseStream);
      
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: