您的位置:首页 > Web前端 > JQuery

使用js仿写jquery中$.ajax()方法

2017-11-08 20:58 591 查看
核心代码:

var Ajax = function(option){
var _option = {
xmlhttp : null,
type: "GET",
async: true,
data: "",
contentType: "application/x-www-form-urlencoded",
dataType: "text", // json
url: "",
success: function(status, response){},
complete: function(status, response){},
error: function(e){console.error(e);},
timeout: function(e){console.error(e);}
}

for( key in option){
_option[key] = option[key];
}

var xmlhttp = (function(){
if (window.XMLHttpRequest){// code for all new browsers
return new XMLHttpRequest();
}else if (window.ActiveXObject){// code for IE5 and IE6
return new ActiveXObject("Microsoft.XMLHTTP");
}
})();
if(xmlhttp != null) {
xmlhttp.open(_option.type, _option.url, _option.async);
xmlhttp.responseType = _option.dataType;
xmlhttp.setRequestHeader("content-type", _option.contentType);
xmlhttp.ontimeout = function(e) {
_option.timeout(e);
};
xmlhttp.onerror = function(e) {
_option.error(e);
};

xmlhttp.onreadystatechange = function(){
if (xmlhttp.readyState == 4){
if (xmlhttp.status == 200) {
_option.success(xmlhttp.status, xmlhttp.response);
}
_option.complete(xmlhttp.status, xmlhttp.response);
}
}

xmlhttp.send(_option.data);
} else {
console.error("Your browser does not support XMLHTTP.");
}
}


使用示例:

Ajax({
type: "POST",
async: true,
data: '{"name":"测试人员","age":22}',
contentType: "application/json;charset=utf-8",
dataType: "json",
url: "test",
success:function(status, response){
console.log(response.code);
console.log(response.message);
}
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  js原生 ajax