JS之封装一个Ajax函数

Ajax方法的封装

要求:

1、定义一个js方法,传入url,请求类型,请求参数,返回参数类型,回调方法,然后完成其ajax操作,并能完成回调。

步骤:

1、定义function,名称为ajax,参数url、type、param、datatype、callback
2、定义一个空的XMLHttpRequest对象。
3、然后区分浏览器,然后如果是IE6以上的,则直接new XMLHttpRequest
如果是IE6以下的,那么newActiveXObject
4、判斷參數中的type
    ① 如果是GET请求,那么拼接param参数。
    ② 然后初始化 HTTP 请求参数,例如 URL 和 HTTP 方法,但是并不发送请求
    ③ 然后定义一个data变量
    ④ 然后判断是否为post请求,如果是,那么给data赋值为param,设置请求头
5、使用XMLHttpRequest发送请求。
6、然后指定回调方法,在回调方法中判断响应码是否为200
7、然后拿到响应中的数据,然后判断相应数据格式
8、将响应格式数据解析为js对象,然后就调用callback回调方法,并传入响应得到的对象

代码实现:

function ajax(url,type,param,dataType,callback) {
    var xhr =null;
    if (window.XMLHttpRequest){
        xhr = new XMLHttpRequest();
    }else {
        xhr = new ActiveXObject('Microsoft.XMLHTTP');
    }
    if (type == 'get'){
        url += "?" +param;
    }
    xhr.open(type,url,true);

    var data = null;
    if (type == 'post'){
        data = param;
        xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    }
    xhr.send(data);
    xhr.onreadystatechange = function () {
        if (xhr.readyState == 4){
            if (xhr.status == 200){
                var data = xhr.responseText;
                if (dataType == 'json'){
                    data = JSON.parse(data);
                }
                callback(data);
            }
        }
    }
}

 

posted @ 2020-08-08 22:07  喜之郎果冻  阅读(547)  评论(0)    收藏  举报