五步法:

   准备:使用dom的方式获取文本框中的值

   document.getElementById("userName")是dom获取元素节点的一种方法, 一个元素
   点对应HTML页面中的一个标签,如果.value可以获取一个元素的value属性值。

1.创建XMLHttprequest对象

   这是XMLHttprequest对象5步中最复杂的一步
   需要针对IE和其他浏览器建立这个对象的不同方式写不同的代码
if (window.XMLHttpRequest) {
        //针对FireFox,Mozillar, Opera, Safari, IE7 , IE8
         xmlhttp = new   XMLHttpRequest();
        //针对某些特定版本的 mozillar浏览器的BUG进行修正
        if (xmlhttp.overrideMimeType ) {
            xmlhttp.overrideMimeType("text/XML" ) ;
        }
    }  else if (window.ActiveXObject) {
        //针对IE6, IE5.5, IE5
        var activexName = ["MSXML2.XMLHTTP",  "Microsoft.XMLHTTP"];
        for (var  i = 0; i < activexName.length; i++ ) {
                   try{
                         xmlhttp = new    ActiveXObject(activexName[i]);
                          break;
                   }  catch(e) {
                   }
            }
      }

2 注册回调函数

   注册回调函数时只需要函数名不要加括号
   我们需要注册的是函数名称,如果加上括号,就把函数的返回值给注册上了,这是错误的
         xmlhttp.onreadystatechange = callback;

3设置连接信息,使用open方法与服务器建立连接

  第一个参数表示http的请求方式。支持所有http的请求方式。主要使用get和post
  第二个参数表示请求的url地址,get方式的参数也在url中
  第三个参数表示采用异步还是同步方式交互,true表示异步
  GET方式请求的代码:
  xmlhttp.open("GET","AJAXServer?name="+userName,true);

4 发送数据,开始和服务器端进行交互

   同步方式下,send这句话会在服务器设置回来后才执行完
   异步方式,send这句话执行晚会立即完成   
   GET方式:
   xmlhttp.send(null);

5 接收响应数据,针对不同的响应状态进行处理

   回调函数
function callback(){
   //接收响应数据
   //判断对象的状态是交互完成
    if(xmlhttp.readyState==4){
    //判断http的交互是否成功、
      if(xmlhttp.status==200){
          //获取服务器端返回的数据
          //获取服务器端输出的纯文本数据
          var responseText = xmlhttp.responseText;
          //将数据显示在页面上
          //通过dom方式找到div标签所对应的元素节点
          var divNode = document.getElementById("result");
          //设置元素节点中的html内容
          divNode.innerHTML=responseText;
      }else
      {
          alert("出错了");
      }
    }
}

Feedback

# re: 使用xmlhttprequest对象来进行AJAX的异步数据交互   回复  更多评论   

2014-08-16 22:31 by 地方vgfd
管道深V管道
只有注册用户登录后才能发表评论。

posts - 22, comments - 1, trackbacks - 0, articles - 8

Copyright © 风花雪月