构建Ajax应用

利用XMLHttpRequest(XHR)对象,每次构建Ajax应用必须遵循以下步骤:

创建XHR对象

var xmlhttp;

try{

  xmlhttp= new ActiveXObject('Msxml2.XMLHTTP');

}catch(e){

  try{

  xmlhttp= new ActiveXObject('Microsoft.XMLHTTP');

  }catch(e){

  try{

  xmlhttp= new XMLHttpRequest();

  }catch(e){}

  }

创建Ajax请求

Xmlhttp.open(“get”, “ajax.jsp?oper=createUser”);

创建一个请求,利用get方式发送,服务器url为“ajax.jsp?oper=createUser”。

open(method , url , asynchronous , user , password);

其中的参数含义如下:

method:指定请求的类型,一般为get或post;

url:指定请求的地址,可以使用绝对地址或相对地址,可以附带查询字符串

asynchronous:可选参数,标识请求是同步还是异步,异步请求为true,同步请求为false,默认情况下该参数为true;

user:可选参数,指定请求的用户名,没有则省略;

password:可选参数, 指定请求的密码,没有则省略;

发送Ajax请求

var body = “userName=qiyi&sex=male&age=25”;

Xmlhttp.send(body);

该方法仅有一个body参数,它标识要向服务器发送的数据,其格式为查询字符串的形式

处理服务器响应

Http状态码

含义

200

请求成功

202

请求被接收,但处理未完成

400

错误的请求

404

请求资源未找到

500

内部服务器错误

使用status属性判断请求的结果

xmlhttp.onreadystatechange=function(){

  if(xmlhttp.readState ==4){

  if(xmlhttp.status ==200){

  //请求成功完成

  }

  else{

  //网络失败或者服务器错误

  }

  }

}

使用responseText获得返回的文本

定义XMLHttpRequest对象的事件处理程序

xmlhttp.onreadystatechange=function(){ 

  if(xmlhttp.readyState==4){

  if(xmlhttp.status==200){

  //捕捉文本    alert(xmlhttp.responseText);

  }else{

  alert(xmlhttp.status);

  }

  }

}

部分代码如下:

 

 

var xmlHttpRequest = null;

//不同浏览器环境下创建xmlHttpRequest的方式是不一样的 function createXmlHttpRequest() {  try {   //IE5.0   return new ActiveXObject("Msxml2.XMLHTTP");  } catch (e) {   try {    //IE5.0以后版本    return new ActiveXObject("Microsoft.XMLHTTP");   } catch (e) {    try {     //其他浏览器,如Firefox     return new XMLHttpRequest();    } catch (e) {    }   }  } } //验证用户名是否可用 function validateUsername() {  var username = document.getElementById("username").value;  //如果用户名为空,则不执行服务器验证,仅提示用户输入用户名  if (username == "") {   document.getElementById("result").innerText = "请输入用户名";   return;  }  var url = "CheckUserNameServlet?username=" + username;

 //调用createXmlHttpRequest方法创建xmlHttpRequest  xmlHttpRequest = createXmlHttpRequest();

 //发送请求    xmlHttpRequest.open("GET", url, true);  xmlHttpRequest.send(null);    //设置回调函数为getResult  xmlHttpRequest.onreadystatechange = validateResult; } function validateResult() {  //表示请求已完成  if (xmlHttpRequest.readyState == 4) {

  //表示请求成功   if (xmlHttpRequest.status == 200) {    //取得验证结果    var result = xmlHttpRequest.responseText;

   if (result == "1") {     document.getElementById("result").innerText = "该用户已被占用";    } else {     document.getElementById("result").innerText = "该用户可以使用";    }   } else {    alert("请求发送异常,异常编号:" + xmlHttpRequest.status);   }  } }

转载于:https://www.cnblogs.com/loveLiac/archive/2012/06/03/2533215.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值