码迷,mamicode.com
首页 > Web开发 > 详细

Ajax封装库

时间:2016-09-04 14:31:45      阅读:320      评论:0      收藏:0      [点我收藏+]

标签:

<script type="text/javascript">

var AjaxUtil = {
     
    // 基础选项
    options : {
        method : "get", // 默认提交的方法,get post
        url : "", // 请求的路径 required
        params : {}, // 请求的参数
        type : text, // 返回的内容的类型,text,xml,json
        callback : function() {
        }// 回调函数 required
    },
     
    // 创建XMLHttpRequest对象
    createRequest : function() {
        var xmlhttp;
        try {
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");// IE6以上版本
        } catch (e) {
            try {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");// IE6以下版本
            } catch (e) {
                try {
                    xmlhttp = new XMLHttpRequest();
                    if (xmlhttp.overrideMimeType) {
                        xmlhttp.overrideMimeType("text/xml");
                    }
                } catch (e) {
                    alert("您的浏览器不支持Ajax");
                }
            }
        }
        return xmlhttp;
    },
    // 设置基础选项
    setOptions : function(newOptions) {
        for ( var pro in newOptions) {
            this.options[pro] = newOptions[pro];
        }
    },
    // 格式化请求参数
    formateParameters : function() {
        var paramsArray = [];
        var params = this.options.params;
        for ( var pro in params) {
            var paramValue = params[pro]; 
            /*if(this.options.method.toUpperCase() === "GET")
            {
                paramValue = encodeURIComponent(params[pro]);
            }*/
            paramsArray.push(pro + "=" + paramValue);
        }
        return paramsArray.join("&");
        // method=get&url=&callback=&type=text
    },
     
    // 状态改变的处理
    readystatechange : function(xmlhttp) {
        // 获取返回值
        var returnValue;
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            switch (this.options.type) {
            case "xml":
                returnValue = xmlhttp.responseXML;
                break;
            case "json":
                var jsonText = xmlhttp.responseText;
                if(jsonText){
                    returnValue = eval("(" + jsonText + ")");
                }
                break;
            default:
                returnValue = xmlhttp.responseText;
                break;
            }
            if (returnValue) {
                this.options.callback.call(this, returnValue);
            } else {
                this.options.callback.call(this);
            }
        }
    },
     
    // 发送Ajax请求
    //{‘method‘:‘get‘}
    request : function(options) {
        var ajaxObj = this;
     
        // 设置参数
        ajaxObj.setOptions.call(ajaxObj, options);
     
        // 创建XMLHttpRequest对象
        var xmlhttp = ajaxObj.createRequest.call(ajaxObj);
     
        // 设置回调函数
        xmlhttp.onreadystatechange = function() {
            ajaxObj.readystatechange.call(ajaxObj, xmlhttp);
        };
     
        // 格式化参数
        var formateParams = ajaxObj.formateParameters.call(ajaxObj);
     
        // 请求的方式
        var method = ajaxObj.options.method;
        var url = ajaxObj.options.url;
     
        if ("GET" === method.toUpperCase()) {
            url += "?" + formateParams;
        }
     
        // 建立连接
        xmlhttp.open(method, url, true);
     
        if ("GET" === method.toUpperCase()) {
            xmlhttp.send(null);
        } else if ("POST" === method.toUpperCase()) {
            // 如果是POST提交,设置请求头信息
            xmlhttp.setRequestHeader("Content-Type",
                    "application/x-www-form-urlencoded");
            xmlhttp.send(formateParams);
        }
    }
};

  
    function $(id) {
        return document.getElementById(id);
    }
    function process(json){
            if(json){
                $("id").value = json.id;
                $("username").value = json.username;
                $("age").value  = json.age;
            }
            else{
                $("msg").value = "用户不存在";
                $("id").value = "";
                $("username").value = "";
                $("age").value = "";
            }
    }
  
function findUser() {
        var userid = $("userid").value;
        if (userid) {
            AjaxUtil.request({
                url:"ajax-07.txt",
                params:{id:userid},
                type:json,
                callback:process
            });
        }
    }
  


</script>

 

Ajax封装库

标签:

原文地址:http://www.cnblogs.com/Abner5/p/5839214.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!