自己封装ajaxSend函数

浏览:1058 发布日期:2015/04/28 分类:技术分享 关键字: ajax
jquery很强大,但有时候,我们就用到其中一个函数,不想引用框架,怎么办,自己动手吧... function extend(des, src, override){
     if(typeof override == 'undefined') override = true;
     if(src instanceof Array){
         for(var i = 0, len = src.length; i < len; i++) extend(des, src[i], override);
     }
     for(var i in src){
         if(override || !(i in des)){
             des[i] = src[i];
         }
     } 
     return des;
 }

   
function ajaxSend(options, func){
    
    var settings = extend({type: 'get', dataType:'json', success: function(data){ alert(data);}, url:'', data:'', async: true}, options, true);
    var xmlhttp = (window.XMLHttpRequest)? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
    xmlhttp.onreadystatechange = function(){
        if(xmlhttp.readyState==4 && xmlhttp.status==200){
            var data = (settings.dataType == 'xml')? xmlhttp.responseXML : xmlhttp.responseText;
            func(data);
        }
    }
    
    if(settings.type == 'get'){
        settings.url = settings.url + '?'+ settings.data;
        settings.data = '';
    }
  //console.log(settings);  
    xmlhttp.open(settings.type,  settings.url, settings.async);
    if(settings.type == 'post') xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    xmlhttp.send(settings.data);

}

$('#test').click(function(){ 

ajaxSend({ url:"test.php", type:'post', data:'name=zhengsan'},  function(data){ alert(data); });  });

);
最佳答案
评论( 相关
后面还有条评论,点击查看>>