window.ActiveXObject,返回一个bool值,看浏览器是否支持ActiveX控件
3//针对不同浏览器,获取XMLHttpRequest对象
4function CreateXMLHttpRequest()
5{
6 if(window.ActiveXObject)
7 {
8 xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
9 }
10 else
11 {
12 xmlHttp=new XMLHttpResquest();
13 }
14}
16//单击btnSayHello时调用的JS函数
17function btnSayHello_onClick()
18{
19 CreateXMLHttpRequest();
20 xmlHttp.onreadystatechange=HandleStateChange;
21 xmlHttp.open("POST","Output.aspx",true);
22 xmlHttp.send(null);
23}
24
25//回调函数
26function HandleStateChange()
27{
28 if(xmlHttp.readyState==4)
29 {
30 if(xmlHttp.status==200)
31 {
32 document.getElementById("result").innerHTML = xmlHttp.responseText;
33 }
34 }
35}
下面我对这个代码进行一个简要的解释。 首先,xmlHttp是一个全局变量,它被初始化后,将负责整个Ajax应用的核心。CreateXMLHttpRequest方法用来得到 XMLHttpRequest对象的实例,这里我们注意到,由于不同浏览器的获取对象方法不同,这里首先要检测浏览器类型,然后使用相应方法获得对象,十 分麻烦。btnSayHello_onClick是一个核心函数,当按钮被单击时,将调用这个函数。它首先初始化xmlHttp,然后指定回调函数为 HandleStateChange,最后异步发布POST请求,调用Output.aspx页面。最后,HandleStateChange作为回调函 数,在xmlHttp的请求状态发生改变时将自动被调用。而在这个函数中,当状态正常时,将id为“result”的DIV的内容设为调用结果。即 Output.aspx输出的字符串