1:初始化XMLHttpRequest,这一步要考虑跨浏览器的问题。对于较早版本的IE来说,并不支持ActiveXObjice类,因此需要对浏览器进行判别。
2:设置XMLHttpRequest对象的onReadyStateChange属性,指定服务器返回响应数据时要调用的回调函数,即指
定响应处理函数。
3:调用XMLHttpRequest对象的open方法,创建http请求。
4:调用XMLHttpRequest对象的setResouceHeader等方法,设置必要的http请求头信息。
5:调用XMLHttpRequest对象的send方法,发送之前创建的http请求。
6:根据XMLHttpRequest对象的open方法参数,决定等待或者不等待服务器回响应数据。如果服务器返回响应数据
,则将控制权交给之前设置回调函数。
示例:
function
send_request()
{
//
创建XMLHttpRequest;
//javascript
是一个弱类型语言,因此变量http_request可以不声明,直接使用
false;
if(window.XMLHttpRequest)
{
//
不支持Window。XMLHttpRequest对象,即是非IE浏览器
new XMLHttpRequest(); //
实例化一个对象
}
else if(window.ActiveXObject)
{
//IE
浏览器
try
{
new ActiveXObject("Msxml2.XMLHTTP");//
较新版本的IE
catch(e)
{
try
{
new ActiveXOBject("Microsoft.XMLHTTP");//
旧版本IE
catch(e)
{
window.alert(e.description);
}
}
}
else
{
"
不能创建 XMLHttpRequest对象,无法应用Ajax"
);
return false;
}
//
指定回调函数
//
相应服务器的异步请求
//
创建HTTP请求
"get","Handler.ashx?flag=addAdmin&userName="+document.getElementById("txtUserName").value,true);
//Handler.ashx
是事件处理函数,注意值的传递方式。
//
发送上面创建的HTTP请求
null);
}
function
{
if(http_request.readyState == 4)//
发送成功
{
if(http_request.status == 200)//
返回状态成功
{
//
正式处理有信息
if(http_request.responseText == "
用户名已经被注册"
)
{
//
隐藏提交按扭
"btnCommit").style.display ="none";
//javascript
对于文档类的取出方法,都是docement.getElementById(“objectID“)
}
else
{
"btnCommit").style.display="";
}
"lblShow").innerText=http_request.responseText;
}
}
}