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

原生JS封装AJAX详解

时间:2017-10-16 13:34:02      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:转化   substr   验证   change   err   window   ajax   同步   xmlhttp   

//1.type 请求方式post,还是get
//2.请求URL地址
//3.参数 (对象)
//4.回调函数
//5.同步还是异步
//请求方式 请求url地址 参数:是一个对象 回调函数 同步异步
function ajax(type,url,par,fn,async) {
//判断请求方式是否合法
//因为传入可能会有大写或小写,统一转化为大写,方便验证
type =type.toUpperCase();
//判断合法性
if(type != "GET" && type !="POST"){
console.error("请求方式不合法");
return;
}
var ajaxObj;
//判断浏览器类型,创建ajax对象
if(window.XMLHttpRequest){
ajaxObj =new XMLHttpRequest();
}else {
ajaxObj =new ActiveXObject("Microsoft.XMLHTTP");
}
//处理参数
var data ="";
for(var prop in par){
data += prop +"="+par[prop]+"&";
}
data =data.substr(0,data.length-1);
if(type =="GET"){
url +="?" +data;
}
//调用open
ajaxObj.open(type,url,async);
if(type =="POST"){
ajaxObj.setRequestHeader("Content-type","application/x-www-form-urlencoded");
ajaxObj.send(data);
}else{
//get
ajaxObj.send();
}
//监听数据返回,通过回调函数通知用户 异步
ajaxObj.onreadystatechange =function () {
if(4 ==ajaxObj.readyState &&200 ==ajaxObj.status){
fn(ajaxObj.responseText);
}
}
}

原生JS封装AJAX详解

标签:转化   substr   验证   change   err   window   ajax   同步   xmlhttp   

原文地址:http://www.cnblogs.com/mmybz/p/7676340.html

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