ajax提交封装,简单仿Jquery

  提交代码

//Ajax提交请求 requestType:"get" or "post"; url:地址;data:请求参数; backCallFun:回调函数
        function AjaxRequest(requestType, url, data, backCallFun) {
            var xhrobj; //XMLHttpRequest对象
            if (window.XMLHttpRequest) {  //标准浏览器
                xhrobj = new XMLHttpRequest();
                //xhobj = new ActiveXObject("Msxml2.XMLHTTP");
            } else if (window.ActiveXObject) {
                xhrobj = new ActiveXObject("Microsoft.XMLHTTP");
            }

            if (requestType == "get") {
                xhrobj.open("get", url, true);
            } else {
                xhrobj.open("post", url, true);
                //当post请求的时候,必须设置Content-Type
                xhrobj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
            }
            //注册事件,当请求后状态改变后触发
            xhrobj.onreadystatechange = function() {
                //readyState状态释义
                //0 - (未初始化)还没有调用send()方法
                //1 - (载入)已调用send()方法,正在发送请求
                //2 - (载入完成)send()方法执行完成,已经接收到全部响应内容
                //3 - (交互)正在解析响应内容
                //4 - (完成)响应内容解析完成,可以在客户端调用了
                if (xhrobj.readyState == 4) {
                    if (xhrobj.status == 200) {  //页面状态
                        var dataStr = xhrobj.responseText;
                        backCallFun(dataStr); //执行回调方法
                    } else {
                        backCallFun("Error");
                    }
                }

            }
            xhrobj.send(data);
        }

  示例:  

  var btnlogin = document.getElementById("btnLogin");
    btnLogin.onclick = function() {
      AjaxRequest("post", "LoginHandler.ashx", "uid=admin&pwd=123", function(data) {
        alert(data);
      });
   }


posted @ 2012-02-06 18:56  老张一笑  阅读(280)  评论(0编辑  收藏  举报