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

XMLHttpRequest简介

2008-03-07 13:34 344 查看
一、XMLHttpRequest 对象的方法与属性

方 法

描 述
abort()

停止当前请求

getAllResponseHeaders()

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

getResponseHeader("header")

返回指定首部的串值

open("method", "url")

建立对服务器的调用。method参数可以是GET、POST或PUT。url参数可以是相对URL或绝对URL。这个方法还包括3个可选的参数

send(content)

向服务器发送请求

setRequestHeader("header", "value")

把指定首部设置为所提供的值。在设置任何首部之前必须先调用open()

属 性

描 述
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(未找到)等等)

二 例子
客户端:


<html xmlns="http://www.w3.org/1999/xhtml" >


<head>


<title>xmlhttprequest ajax demo</title>


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


var req; //xmlhttprequest对象变量




function getHttpRequest()...{




if(window.XMLHttpRequest) //非IE浏览器,用xmlhttprequest对象创建




...{


req=new XMLHttpRequest();


}


else if(window.ActiveXObject) //IE浏览器用activexobject对象创建




...{


req=new ActiveXObject("Microsoft.XMLHttp");


}


return req;


}


function post()




...{


var url="ajax.aspx"; //服务端的相对地址




req = getHttpRequest();




if(req) //成功创建xmlhttprequest




...{


req.open("GET",url,true); //与服务端建立连接(请求方式post或get,地址,true表示异步)


req.onreadystatechange = callResponse; //指定回调函数


req.send(null); //发送请求


}


}




function callResponse() //回调函数,对服务端的响应处理,监视response状态




...{


if(req.readyState == 4) //请求状态为4表示成功




...{


if(req.status == 200) //http状态200表示OK




...{


document .getElementById ("zone").innerHTML = req.responseText;


}


else //http返回状态失败




...{


alert("服务端返回状态" + req.statusText);


}


}


else //请求状态还没有成功,页面等待




...{


document .getElementById ("zone").innerHTML ="数据加载中";


}


}


</script>


</head>


<body>


<div id="zone"></div>


<input id="Button1" type="button" value="XmlHttpRequest Example" onclick ="post();"/>


</body>


</html>

服务端:

新建ASP.NET工程,添加以下代码


using System;


using System.Data;


using System.Configuration;


using System.Collections;


using System.Web;


using System.Web.Security;


using System.Web.UI;


using System.Web.UI.WebControls;


using System.Web.UI.WebControls.WebParts;


using System.Web.UI.HtmlControls;




public partial class Ajax : System.Web.UI.Page




...{


protected void Page_Load(object sender, EventArgs e)




...{


System.Threading.Thread.Sleep(1000); //为了看到ajax效果,将当前线程延时1000毫秒


Response.Write(DateTime.Now.ToString()); //输出当前时间


}


}



三 测试
http://localhost:1966/WebSite2/Ajax.html,一切正常。

参考/article/4808405.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: