js 原生 ajax

//js  ajax
function Ajax(url,type,data,comFun,sucFun,errFun)
{
    //1、创建XMLHttpRequest对象
    var xmlHttpRequest;
    
   if(window.ActiveXObject) //IE低版本
   {
        xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
   }
   else if (window.XMLHttpRequest)//Firefox等
   {
       xmlHttpRequest = new XMLHttpRequest();
   }
  
    //2、创建连接
    xmlHttpRequest.open(type, url, true);  
    
    //处理post请求参数
    var params = null;
    if(type.toLowerCase()=="post")
    {
        //post方式要设置请求类型
        xmlHttpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
        
        if(typeof data=="string")
        {
            params = data;
        } 
        else
        {
            var arr = [];
            for(var k in data)
            {
                arr.push(k+"="+data[k]);
            }
            params = arr.join("&");
        }
    }
    else
    {
       //如果是get请求 send方法中的参数为null
       params = null; 
    }
    
    //3、发送请求
    xmlHttpRequest.send(params);  
  
    //4、接受服务器响应结果
    xmlHttpRequest.onreadystatechange = function()
    {
        // readyState值说明  
        // 0,初始化,XHR对象已经创建,还未执行open  
        // 1,载入,已经调用open方法,但是还没发送请求  
        // 2,载入完成,请求已经发送完成  
        // 3,交互,可以接收到部分数据  
       
        if (xmlHttpRequest.readyState == 4) {  
            //complete: 请求完成时执行的函数
            //complete();
            comFun("请求完成......");
            
            // status值说明  
            // 200:成功  
            // 404:没有发现文件、查询或URl  
            // 500:服务器产生内部错误  
            
            if(xmlHttpRequest.status == 200)
            {
                //success: 请求成功时执行的函数
                //success();
                var text = xmlHttpRequest.responseText;  
                sucFun(text);
            }
            else
            {
                //error: 请求失败时执行的函数
                //error();
                errFun("服务器错误......");
            }
        }
      
    }
}
原文地址:https://www.cnblogs.com/zoro-zero/p/4331914.html