XMLHttpRequest对象

1.IE把XMLHttpRequest对象当作一个Activex控件,其它浏览器如FF等把它当作一个本地JavaScript对象。

2.创建XMLHttpRequest对象

var xmlHttp;//创建全局变量xmlHttp保存XMLHttpRequest对象的引用

function createXMLHttpRequest()

{

     if(window.ActiveObject)

     {

          xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");

     }

     else if(window.XMLHttpRequest)

     {

          xmlHttp=new XMLHttpRequest();

     }

}

3.由于JavaScript具有动态类型的特征,而且XMLHttpRequest在不同浏览器上的实现是兼容的,所以可以使用同样的方式访问XMLHttpRequest实例的属性和方法。

标准XMLHttpRequest操作

方法

说明

void Abort()

停止当前请求

string getAllResponseHeaders()

把HTTP请求的所有响应首部作为键/值返回

string GetResponseHeader(string header)

返回指定首部的串值

void open("method","url")

建立对服务器的调用。Method参数可以是GET,POST或PUT。Url参数可以是相对URL或绝对URL,提供所调用资源的URL

void open(string method,string url,boolean asynch,string username,string password)

同上,上面两个是必填参数,下面这些是可选的。Boolean值指示这个调用是同步和还是异步的,默认为true, 表示异步的,如果为false,处理就会等待,直到从服务器返回响应为止。

soid sent(string content)

向服务器发送请求,如果为异步的,则该方法会立即返回,否则它会等到接收到响应为止。

void setRequestHeader(string header,string value)

为Http请求中一个给定的首部设定值,第一个参数表示要设置的首部,第二个参数表示要在首部中放的值,这个方法必须在调用open()方法之后才能调用。

标准XMLHttpRequest属性

属性

说明

onreadystatechange

每个状态改变时会触发这个事件处理器,通常会调用一个JavaScript函数

readystate

请求的状态,有5个可能的值,0未初始化,1正在加载,2已加载,3交互中,4完成

responseText

服务器的响应,表示为一个串

responseXML

服务器响应,表示为XML,这个对象可以解析为一个DOM对象

status

服务器的HTTP状态吗,200对应OK,404对应未找到(Not Found)

statusText

HTTP状态对应的文本,OK或Not Found等等

一个Ajax简单请求示例:

创建一个XML文件,里面写一些内容来读取,再创建一个代码页面,可以是html也可以是.aspx等。

XMLHttpRequest对象发送请求一般有四个步骤:

1.创建XMLHttpRequest对象的一个实例

2.告诉XMLHttpRequest对象,哪个函数会处理XMLHttp对象状态的改变,为此要把对象的onreadystatechange属性设置为指向JavaScript函数的指针

3.指定请求的属性,XMLRequest对象的open()方法会指定将发出的请求,该方法有三个参数,第一个是指示所用方法(通常是GET或POST)的串,第二个是目标资源URL的串,第三个是一个布尔值,指示是否是异步请求

4.将请求发送给服务器,XMLHttpRequest对象的send()方法把请求发送到指定的目标资源,send()方法接受一个参数,通常是一个串或一个DOM对象,这个参数作为请求的一部分发送到目标URL,当向send方法提供参数时,要确保open()中指定的是POST,否则使用null

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication2._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    
<title>无标题页</title>
    
<script type="text/javascript">
        var xmlHttp;
//创建全局变量xmlHttp保存XMLHttpRequest对象的引用
        
        function startRequest(){
            createXMLHttpRequest(); 
//第一步
            xmlHttp.onreadystatechange=handleStateChange;//第二步
            xmlHttp.open("GET","testXML.xml",true);//第三步
            xmlHttp.send(null);//第四步
        }
        
        
//创建XMLHttpRequest对象
        function createXMLHttpRequest(){
            
if(window.ActiveXObject){
                xmlHttp
=new ActiveXObject("Microsoft.XMLHTTP");
            }
            
else if(window.XMLHttpRequest){
                xmlHttp
=new XMLHttpRequest();
            }
        }
        
        function handleStateChange(){
            
if(xmlHttp.readyState==4){
                
if(xmlHttp.status==200){
                    alert(
"The server replied with: "+xmlHttp.responseText);
                }
            }
        }
    
</script>
</head>
<body>
    
<form id="form1" runat="server">
    
<div>
        
<input type="button" value="Start Basic Asynchronous Request " onclick="startRequest();" />
    
</div>
    
</form>
</body>
</html>

 

 

posted @ 2009-02-07 22:32  Done  阅读(644)  评论(0编辑  收藏  举报