Ajax原生封装

来源:互联网 发布:麦琪的礼物 知乎 编辑:程序博客网 时间:2024/05/17 22:36

ajax({
url:请求的地址,
type: get || post,
data:给请求地址所发送的数据,
dataType : TEXT || XML || JSON // 按照什么类型的格式进行返回数据,
async: true || false,
success:function(data){
data:是请求发送成功返回的数据
},
error:function(data){
data:请求发送失败给予相关的提示
}
})

function ajax(obj){    var url = obj.url;    if(url ==undefined ){        alert("请输入有效地址");        return;    }    var type = obj.type || 'GET';    var dataType = obj.dataType || 'TEXT';    var data = obj.data;    var async = obj.async == underfined?true:obj.async;    var str = '';    var success = obj.sucess;    if(!success){        return false;    }    var error = obj.error || function(a){        alert(a)    }    if(typeof data =='object'){        for(var i in data){            str += i+'='+data[i]+'&';        }        str = str(0,-1);    }else{        str = data;    }    var xhr = new XMLHttpRequest() || new ActiveXObject("Microsoft.XMLHTTP");    if(type.toUpperCase()=='GET'){        xhr.open(type,url+'?'+str,async);        xhr.send()    }else if(type.toUpperCase()=='POST'){        xhr.open(type,url,async);        xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded';charset=utf-8);        xhr.send(str);    }    xhr.onreadystatechange = function(){        if(xhr.readystate ==4 ){            if(xhr.status==200 || xhr.status==304){                if(dataType.toUpperCase()=='TEXT'){                    success(xhr.responseText);                }else if(dataType.toUpperCase()=='XML'){                    success(xhr.responseXML);                }else if(dataType.toUpperCase()=='JSON'){                    success(JSON.parse(xhr.response));                }            }else if(xhr.status==404){                error('请求失败')            }        }    }}

备注:代码为本人自己创作,若有雷同纯属巧合,请自行准备素材,不要粘贴代码,如果有更简短的代码可以互相学习!!!!

原创粉丝点击