一个CSDN朋友写的AJAX的封装

var Ajax = {
    GetXmlHttp : function () {
var xmlHttp = null;
try {
            xmlHttp = new XMLHttpRequest();
        } catch (e) {
try {
                xmlHttp = new ActiveXObject('Msxml2.XMLHTTP');
            } catch (ee) {
                xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
            }
        }
return xmlHttp; }, Process : function (ajaxInfo, processFun) {
var xmlObj = Ajax.GetXmlHttp();
if (!xmlObj) {
            alert("抱歉,你的浏览器不支持AJAX。");
return;
         }
var method = ajaxInfo.Method.toUpperCase();
var data = null;
         xmlObj.open(method, ajaxInfo.Url, true);
if (method == "POST") {
            data = ajaxInfo.Data;
            xmlObj.setRequestHeader("Content-Length", data.Length());
            xmlObj.setRequestHeader("CONTENT-TYPE", "application/x-www-form-urlencoded");
         }
         xmlObj.send(data);
         xmlObj.onreadystatechange = function () {
if (xmlObj.readyState == 4) {
if (xmlObj.status == 200) {
var type = ajaxInfo.Type.toUpperCase();
if (type == "TEXT") {
                        processFun(xmlObj.responseText);
                    } else if (type == "XML") {
                        processFun(xmlObj.responseXML);
                    } else {
                        alert("无法识别的返回方式");
                    }
                    xmlObj = null;
                }
            }
         };
    }
}

<script language="javascript" type="text/javascript">
<!--
//var postData = "userName=abc&userPass=123";
//var request = { Method:"POST", Url:"data.ashx?rnd=" + Math.random(), Data:postData, Type:"TEXT" };//注释的部分是POST调用方式,下面是GET调用方式
var request = { Method:"GET", Url:"data.ashx?rnd=" + Math.random(), Data:null, Type:"TEXT" };
    Ajax.Process(request, function (data) {
var jason = "var obj = " + data + ";";
        eval(jason);       
        alert(obj.User.Name);
    });
//-->
</script>

posted @ 2010-05-26 00:51  心梦帆影  阅读(222)  评论(0编辑  收藏  举报