XmlHttp是什么?

      最通用的定义为:XmlHttp是一套可以在Javascript、VbScript、Jscript等脚本语言中通过http协议传送或从接收XML及其他数据的一套API。XmlHttp最大的用处是可以更新网页的部分内容而不需要刷新整个页面。

来自MSDN的解释:XmlHttp提供客户端同http服务器通讯的协议。客户端可以通过XmlHttp对象(MSXML2.XMLHTTP.3.0)向http服务器发送请求并使用微软XML文档对象模型Microsoft® XML Document Object Model (DOM)处理回应。 现在的绝对多数浏览器都增加了对XmlHttp的支持,IE中使用ActiveXObject方式创建XmlHttp对象,其他浏览器如:Firefox、Opera等通过window.XMLHttpRequest来创建xmlhttp对象。

XmlHttp对象的属性:
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象
XmlHttp对象的方法:
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象

如何发送一个简单的请求?
      最简单的请求是,不以查询参数或提交表单的方式向服务器发送任何信息.使用XmlHttpRequest对象发送请求的基本步骤:
      ● 为得到XmlHttpRequest对象实例的一个引用,可以创建一个新的XmlHttpRequest的实例。
      ● 告诉XmlHttpRequest对象,那个函数回处理XmlHttpRequest对象的状态的改变.为此要把对象的
         onreadystatechange属性设置为指向JavaScript的指针.
      ● 指定请求属性.XmlHttpRequest对象的Open()方法会指定将发送的请求.
      ● 将请求发送给服务器.XmlHttpRequest对象的send()方法将请求发送到目标资源.

XmlHttpRequest实例分析
      我想大家都知道,要想使用一不对象首先我门得做什么?是不是必须先创建一个对象吧.比如C#和Java里用new来实例对象.那么我门现在要使用XmlHttp对象是不是也应该先创建一个XmlHttp对象呢?这是毫无疑问的!那么下面我们来看看在客户端怎么创建一个XmlHttp对象,并使用这个对象向服务端发送Http请求,然后处理服务器返回的响应信息.

1.创建一个XmlHttp对象(在这里我以一个无刷新做加法运算的实例 )

 1轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象var xmlHttp;
 2轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象function createXMLHttpRequest()
 3   if(window.ActiveXObject)
 5         xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
 7轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象   }
 8轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象   else if(window.XMLHttpRequest)
 9         xmlHttp = new XMLHttpRequest();
11轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象   }
12轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象}

2.定义发送请求的方法

1轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象//处理方法
2轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象function AddNumber()
3  createXMLHttpRequest();
5轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象  var url= "AddHandler.ashx?num1="+document.getElementById("num1").value+"&num2="+document.getElementById("num2").value;
6轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象  xmlHttp.open("GET",url,true);
7轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象  xmlHttp.onreadystatechange=ShowResult;
8轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象  xmlHttp.send(null);
9轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象}

3.定义回调函数,用于处理服务端返回的信息

 1轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象//回调方法
 2轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象function ShowResult()
 3   if(xmlHttp.readyState==4)
 5         if(xmlHttp.status==200)
 7                document.getElementById("sum").value=xmlHttp.responseText;
 9轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象      }
10轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象   }
11轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象}
      在上面这个实例中,是在客户端想服务端的AddHandler.ashx发送的请求,并传递两个参数(也就是待相加的数)过去,下面我门来看看服务端是怎么处理接收传递过去的两个参数以及怎么实现加法运算并返回结果到客户端的.代码如下:
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象<%@ WebHandler Language="C#" Class="Handler" %>
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象using System;
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象using System.Web;
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象using System.Data;
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象using System.Data.SqlClient;
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象public class Handler : IHttpHandler 
    
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象    public void ProcessRequest (HttpContext context) 
            context.Response.ContentType = "text/plain";
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象        int a = Convert.ToInt32(context.Request.QueryString["num1"]);
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象        int b = Convert.ToInt32(context.Request.QueryString["num2"]);
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象        int result = a + b;
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象        context.Response.Write(result);
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象    }
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象 
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象    public bool IsReusable
            get 
                    return false;
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象        }
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象    }
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象}

现在我门就可以调用AddNumber()这个方法向服务端发送请求来做一个无刷新的加法运算了.
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象<div style="text-align: center">
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象        <br />无刷新求和示例<br />
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象        <br />
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象        <input 轻松掌握XMLHttpRequest对象------【这是.net 版本】 轻松掌握XMLHttpRequest对象" align="top" title="轻松掌握XMLHttpRequest对象------【这是.net 版本】 轻松掌握XMLHttpRequest对象">        +<input 轻松掌握XMLHttpRequest对象------【这是.net 版本】 轻松掌握XMLHttpRequest对象" align="top" title="轻松掌握XMLHttpRequest对象------【这是.net 版本】 轻松掌握XMLHttpRequest对象">        =<input  /></div>
运行结果如下:
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象
这个实例虽然很简单.我之所以用这个实例主要是给大家介绍XmlHttp对象的处理过程.文章后面我把项目文件提供下载.

------------------------------------------------------------------------------------------------------------
      上面把JS写到页面中了,在实际的项目开发中是不推荐这样做的,最好把JS代码都定义到一个JS文件类.我这里有一份XmlHttpRequest对象的JS(网上下载的),把相关的方法基本都写全了.下面我门来看看怎么使用这个外部JS文件来发送异步请求及响应.
我门先来看看这个JS文件的详细定义:
 1轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象function CallBackObject()
 2  this.XmlHttp = this.GetHttpObject();
 4轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象}
 5轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象 
 6轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象CallBackObject.prototype.GetHttpObject = function()
 7  var xmlhttp;
 9  if (!xmlhttp && typeof XMLHttpRequest != 'undefined')     try       xmlhttp = new XMLHttpRequest();
12    } catch (e)       xmlhttp = false;
14轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象    }
15轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象  }
16轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象  return xmlhttp;
17轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象}
18轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象 
19轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象CallBackObject.prototype.DoCallBack = function(URL)
20  if( this.XmlHttp )
22      if( this.XmlHttp.readyState == 4 || this.XmlHttp.readyState == 0 )
24          var oThis = this;
26轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象      this.XmlHttp.open('POST', URL);
27      this.XmlHttp.onreadystatechange = function()      this.XmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
29轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象      this.XmlHttp.send(null);
30轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象    }
31轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象  }
32轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象}
33轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象 
34轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象CallBackObject.prototype.AbortCallBack = function()
35  if( this.XmlHttp )
37轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象    this.XmlHttp.abort();
38轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象}
39轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象 
40轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象CallBackObject.prototype.OnLoading = function()
41  // Loading
43轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象}
44轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象 
45轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象CallBackObject.prototype.OnLoaded = function()
46  // Loaded
48轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象}
49轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象 
50轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象CallBackObject.prototype.OnInteractive = function()
51  // Interactive
53轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象}
54轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象 
55轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象CallBackObject.prototype.OnComplete = function(responseText, responseXml)
56  // Complete
58轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象}
59轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象 
60轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象CallBackObject.prototype.OnAbort = function()
61  // Abort
63轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象}
64轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象 
65轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象CallBackObject.prototype.OnError = function(status, statusText)
66  // Error
68轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象}
69轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象 
70轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象CallBackObject.prototype.ReadyStateChange = function()
71  if( this.XmlHttp.readyState == 1 )
73      this.OnLoading();
75轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象  }
76轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象  else if( this.XmlHttp.readyState == 2 )
77     this.OnLoaded();
79轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象  }
80轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象  else if( this.XmlHttp.readyState == 3 )
81     this.OnInteractive();
83轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象  }
84轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象  else if( this.XmlHttp.readyState == 4 )
85     if( this.XmlHttp.status == 0 )
87轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象      this.OnAbort();
88轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象    else if( this.XmlHttp.status == 200 && this.XmlHttp.statusText == "OK" )
89轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象      this.OnComplete(this.XmlHttp.responseText, this.XmlHttp.responseXML);
90轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象    else
91轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象      this.OnError(this.XmlHttp.status, this.XmlHttp.statusText, this.XmlHttp.responseText);   
92轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象  }
93轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象}
94轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象

一个简单的Hello实例:
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象<html xmlns="http://www.w3.org/1999/xhtml" >
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象<head runat="server">
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象<title>HelloWorld实例</title>
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象<script language="jscript" src="CallBackObject.js"></script>
        <script language=jscript>        function createRequest()
                    var name = escape(document.getElementById("name").value);
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象            var cbo = new CallBackObject();
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象            cbo.OnComplete = Cbo_Complete;
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象            cbo.onError = Cbo_Error;
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象            cbo.DoCallBack("HelloWorldServer.aspx?name=" + name);                        
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象        }
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象        function Cbo_Complete(responseText, responseXML)
                    alert(responseText);
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象        }
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象        function Cbo_Error(status, statusText, responseText)
                    alert(responseText);
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象        }
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象        </script>
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象</head>
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象<body>
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象    <form 轻松掌握XMLHttpRequest对象------【这是.net 版本】 轻松掌握XMLHttpRequest对象" align="top" title="轻松掌握XMLHttpRequest对象------【这是.net 版本】 轻松掌握XMLHttpRequest对象">    <DIV style="DISPLAY: inline; FONT-WEIGHT: bold; FONT-SIZE: 30px; FONT-FAMILY: Arial, Verdana"
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象                ms_positioning="FlowLayout">Hello, Ajax!</DIV>
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象            <HR width="100%" SIZE="1">
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象            <input type="text" 轻松掌握XMLHttpRequest对象------【这是.net 版本】 轻松掌握XMLHttpRequest对象" align="top" title="轻松掌握XMLHttpRequest对象------【这是.net 版本】 轻松掌握XMLHttpRequest对象">            <br>
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象            <input type="button" value="发送请求" onclick="javascript:createRequest()">
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象    </form>
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象</body>
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象</html>

     关于XmlHttpRequest对象就介绍到这里,更多更详细的内容请大家查看相关资料.
     欢迎拍砖指正,不甚感激!
本文实例源代码下载
 
[06] C#/ASP.NET/AJAX
XmlHttp是什么?

      最通用的定义为:XmlHttp是一套可以在Javascript、VbScript、Jscript等脚本语言中通过http协议传送或从接收XML及其他数据的一套API。XmlHttp最大的用处是可以更新网页的部分内容而不需要刷新整个页面。

来自MSDN的解释:XmlHttp提供客户端同http服务器通讯的协议。客户端可以通过XmlHttp对象(MSXML2.XMLHTTP.3.0)向http服务器发送请求并使用微软XML文档对象模型Microsoft® XML Document Object Model (DOM)处理回应。 现在的绝对多数浏览器都增加了对XmlHttp的支持,IE中使用ActiveXObject方式创建XmlHttp对象,其他浏览器如:Firefox、Opera等通过window.XMLHttpRequest来创建xmlhttp对象。

XmlHttp对象的属性:
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象
XmlHttp对象的方法:
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象

如何发送一个简单的请求?
      最简单的请求是,不以查询参数或提交表单的方式向服务器发送任何信息.使用XmlHttpRequest对象发送请求的基本步骤:
      ● 为得到XmlHttpRequest对象实例的一个引用,可以创建一个新的XmlHttpRequest的实例。
      ● 告诉XmlHttpRequest对象,那个函数回处理XmlHttpRequest对象的状态的改变.为此要把对象的
         onreadystatechange属性设置为指向JavaScript的指针.
      ● 指定请求属性.XmlHttpRequest对象的Open()方法会指定将发送的请求.
      ● 将请求发送给服务器.XmlHttpRequest对象的send()方法将请求发送到目标资源.

XmlHttpRequest实例分析
      我想大家都知道,要想使用一不对象首先我门得做什么?是不是必须先创建一个对象吧.比如C#和Java里用new来实例对象.那么我门现在要使用XmlHttp对象是不是也应该先创建一个XmlHttp对象呢?这是毫无疑问的!那么下面我们来看看在客户端怎么创建一个XmlHttp对象,并使用这个对象向服务端发送Http请求,然后处理服务器返回的响应信息.

1.创建一个XmlHttp对象(在这里我以一个无刷新做加法运算的实例 )

 1轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象var xmlHttp;
 2轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象function createXMLHttpRequest()
 3   if(window.ActiveXObject)
 5         xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
 7轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象   }
 8轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象   else if(window.XMLHttpRequest)
 9         xmlHttp = new XMLHttpRequest();
11轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象   }
12轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象}

2.定义发送请求的方法

1轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象//处理方法
2轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象function AddNumber()
3  createXMLHttpRequest();
5轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象  var url= "AddHandler.ashx?num1="+document.getElementById("num1").value+"&num2="+document.getElementById("num2").value;
6轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象  xmlHttp.open("GET",url,true);
7轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象  xmlHttp.onreadystatechange=ShowResult;
8轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象  xmlHttp.send(null);
9轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象}

3.定义回调函数,用于处理服务端返回的信息

 1轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象//回调方法
 2轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象function ShowResult()
 3   if(xmlHttp.readyState==4)
 5         if(xmlHttp.status==200)
 7                document.getElementById("sum").value=xmlHttp.responseText;
 9轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象      }
10轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象   }
11轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象}
      在上面这个实例中,是在客户端想服务端的AddHandler.ashx发送的请求,并传递两个参数(也就是待相加的数)过去,下面我门来看看服务端是怎么处理接收传递过去的两个参数以及怎么实现加法运算并返回结果到客户端的.代码如下:
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象<%@ WebHandler Language="C#" Class="Handler" %>
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象using System;
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象using System.Web;
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象using System.Data;
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象using System.Data.SqlClient;
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象public class Handler : IHttpHandler 
    
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象    public void ProcessRequest (HttpContext context) 
            context.Response.ContentType = "text/plain";
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象        int a = Convert.ToInt32(context.Request.QueryString["num1"]);
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象        int b = Convert.ToInt32(context.Request.QueryString["num2"]);
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象        int result = a + b;
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象        context.Response.Write(result);
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象    }
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象 
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象    public bool IsReusable
            get 
                    return false;
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象        }
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象    }
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象}

现在我门就可以调用AddNumber()这个方法向服务端发送请求来做一个无刷新的加法运算了.
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象<div style="text-align: center">
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象        <br />无刷新求和示例<br />
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象        <br />
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象        <input 轻松掌握XMLHttpRequest对象------【这是.net 版本】 轻松掌握XMLHttpRequest对象" align="top" title="轻松掌握XMLHttpRequest对象------【这是.net 版本】 轻松掌握XMLHttpRequest对象">        +<input 轻松掌握XMLHttpRequest对象------【这是.net 版本】 轻松掌握XMLHttpRequest对象" align="top" title="轻松掌握XMLHttpRequest对象------【这是.net 版本】 轻松掌握XMLHttpRequest对象">        =<input  /></div>
运行结果如下:
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象
这个实例虽然很简单.我之所以用这个实例主要是给大家介绍XmlHttp对象的处理过程.文章后面我把项目文件提供下载.

------------------------------------------------------------------------------------------------------------
      上面把JS写到页面中了,在实际的项目开发中是不推荐这样做的,最好把JS代码都定义到一个JS文件类.我这里有一份XmlHttpRequest对象的JS(网上下载的),把相关的方法基本都写全了.下面我门来看看怎么使用这个外部JS文件来发送异步请求及响应.
我门先来看看这个JS文件的详细定义:
 1轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象function CallBackObject()
 2  this.XmlHttp = this.GetHttpObject();
 4轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象}
 5轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象 
 6轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象CallBackObject.prototype.GetHttpObject = function()
 7  var xmlhttp;
 9  if (!xmlhttp && typeof XMLHttpRequest != 'undefined')     try       xmlhttp = new XMLHttpRequest();
12    } catch (e)       xmlhttp = false;
14轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象    }
15轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象  }
16轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象  return xmlhttp;
17轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象}
18轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象 
19轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象CallBackObject.prototype.DoCallBack = function(URL)
20  if( this.XmlHttp )
22      if( this.XmlHttp.readyState == 4 || this.XmlHttp.readyState == 0 )
24          var oThis = this;
26轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象      this.XmlHttp.open('POST', URL);
27      this.XmlHttp.onreadystatechange = function()      this.XmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
29轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象      this.XmlHttp.send(null);
30轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象    }
31轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象  }
32轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象}
33轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象 
34轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象CallBackObject.prototype.AbortCallBack = function()
35  if( this.XmlHttp )
37轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象    this.XmlHttp.abort();
38轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象}
39轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象 
40轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象CallBackObject.prototype.OnLoading = function()
41  // Loading
43轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象}
44轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象 
45轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象CallBackObject.prototype.OnLoaded = function()
46  // Loaded
48轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象}
49轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象 
50轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象CallBackObject.prototype.OnInteractive = function()
51  // Interactive
53轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象}
54轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象 
55轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象CallBackObject.prototype.OnComplete = function(responseText, responseXml)
56  // Complete
58轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象}
59轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象 
60轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象CallBackObject.prototype.OnAbort = function()
61  // Abort
63轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象}
64轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象 
65轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象CallBackObject.prototype.OnError = function(status, statusText)
66  // Error
68轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象}
69轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象 
70轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象CallBackObject.prototype.ReadyStateChange = function()
71  if( this.XmlHttp.readyState == 1 )
73      this.OnLoading();
75轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象  }
76轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象  else if( this.XmlHttp.readyState == 2 )
77     this.OnLoaded();
79轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象  }
80轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象  else if( this.XmlHttp.readyState == 3 )
81     this.OnInteractive();
83轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象  }
84轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象  else if( this.XmlHttp.readyState == 4 )
85     if( this.XmlHttp.status == 0 )
87轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象      this.OnAbort();
88轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象    else if( this.XmlHttp.status == 200 && this.XmlHttp.statusText == "OK" )
89轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象      this.OnComplete(this.XmlHttp.responseText, this.XmlHttp.responseXML);
90轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象    else
91轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象      this.OnError(this.XmlHttp.status, this.XmlHttp.statusText, this.XmlHttp.responseText);   
92轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象  }
93轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象}
94轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象

一个简单的Hello实例:
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象<html xmlns="http://www.w3.org/1999/xhtml" >
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象<head runat="server">
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象<title>HelloWorld实例</title>
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象<script language="jscript" src="CallBackObject.js"></script>
        <script language=jscript>        function createRequest()
                    var name = escape(document.getElementById("name").value);
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象            var cbo = new CallBackObject();
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象            cbo.OnComplete = Cbo_Complete;
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象            cbo.onError = Cbo_Error;
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象            cbo.DoCallBack("HelloWorldServer.aspx?name=" + name);                        
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象        }
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象        function Cbo_Complete(responseText, responseXML)
                    alert(responseText);
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象        }
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象        function Cbo_Error(status, statusText, responseText)
                    alert(responseText);
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象        }
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象        </script>
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象</head>
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象<body>
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象    <form 轻松掌握XMLHttpRequest对象------【这是.net 版本】 轻松掌握XMLHttpRequest对象" align="top" title="轻松掌握XMLHttpRequest对象------【这是.net 版本】 轻松掌握XMLHttpRequest对象">    <DIV style="DISPLAY: inline; FONT-WEIGHT: bold; FONT-SIZE: 30px; FONT-FAMILY: Arial, Verdana"
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象                ms_positioning="FlowLayout">Hello, Ajax!</DIV>
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象            <HR width="100%" SIZE="1">
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象            <input type="text" 轻松掌握XMLHttpRequest对象------【这是.net 版本】 轻松掌握XMLHttpRequest对象" align="top" title="轻松掌握XMLHttpRequest对象------【这是.net 版本】 轻松掌握XMLHttpRequest对象">            <br>
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象            <input type="button" value="发送请求" onclick="javascript:createRequest()">
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象    </form>
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象</body>
轻松掌握XMLHttpRequest对象------【这是.net 版本】
    





            
轻松掌握XMLHttpRequest对象</html>

     关于XmlHttpRequest对象就介绍到这里,更多更详细的内容请大家查看相关资料.
     欢迎拍砖指正,不甚感激!
本文实例源代码下载

相关文章: