ajax封装
function ajax(options) {
var defaults={
type:'get',
url:'',
data:{},
dataType:'json',
success:function (result) {
console.log(result);
},
async:true
}
//覆盖原对象的默认值
object.assign(defaults,options);
//创建一个ajax对象 (兼容)
var xmlhttp;
if (window.XMLHttpRequest)
{
// IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
xmlhttp=new XMLHttpRequest();
}
else
{
// IE6, IE5 浏览器执行代码
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
var params="";
//拼接字符串 url其后紧跟
for(var attr in defaults.data){
params+=attr+'='+defaults.data[attr]+'&';
}
if(params){
//截取字符串
params=params.substring(0,params.length-1);
}
//判断get/post类型
if (defaults.type=='get'){
defaults.url += '?' +params;
}
xhr.open(defaults.type,defaults.url,defaults.async);
if(defaults.type == 'get') {
xhr.send();
}else if(defaults.type=='post'){
//post像服务器发送请求
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.send(params);
}
if(defaults.async){
xhr.onreadystatechange=function () {
if(xhr.readyState==4 && xhr.status==200){
var result=null;
if(defaults.dataType=='json'){
result=xhr.responseText;
result=json.parse(result);
}else if(defaults.dataType='xml'){
result=xhr.responseXML;
}else{
result=xhr.responseText;
}
//输出
defaults.success(result);
}
}
}else{
xhr.οnlοad=function () {
if(xhr.readyState==4 && xhr.status==200){
var result=null;
if(defaults.dataType=='json'){
result=xhr.responseText;
result=json.parse(result);
}else if(defaults.dataType='xml'){
result=xhr.responseXML;
}else{
result=xhr.responseText;
}
//输出
defaults.success(result);
}
}
}
}