百度首页 | 百度空间
 
查看文章
 
ajax XMLHTTPRequest 对象封装函数
2008-05-07 下午 03:54


var XMLHttp = {

_createXMLHttpRequest : function()
     {
         if (window.XMLHttpRequest)
         {
             var objXMLHttp = new XMLHttpRequest();

         }
         else
         {
             var MSXML = ['MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];
             var Count = MSXML.length;
             for(var i = 0; i < Count; i ++)
             {
                 try
                 {
                     var objXMLHttp = new ActiveXObject(MSXML[i]);        
                     break;
                 }
                 catch(e)
                 {
                 }
             }
          }          
        
         // mozilla某些版本没有readyState属性
         if (objXMLHttp.readyState == null)
         {
             objXMLHttp.readyState = 0;

             objXMLHttp.addEventListener("load", function ()
                 {
                     objXMLHttp.readyState = 4;
                    
                     if (typeof objXMLHttp.onreadystatechange == "function")
                     {
                         objXMLHttp.onreadystatechange();
                     }
                 },   false);
         }

         return objXMLHttp;
     },
    
    
   //method 传递方式(GET,POST)
   //url http字符串包括查询字符串
   //data 发送的数据 没有就传 null或''
   //sendtype 请求方式(true 异步 false 同步)
   //callback 回调函数
   //datatype 编码方式(xml "text/xml",普通 "application/x-www-form-urlencoded; charset=UTF-8"或"application/x-www-form-urlencoded; charset=GB2312")
_sendRequest : function(method, url, data, sendtype, datatype, callback)
     {
         var objXMLHttp = this._createXMLHttpRequest();
        
         with(objXMLHttp)
         {
             try
             {
                 // 加随机数防止缓存
                 if (url.indexOf("?") > 0)
                 {
                     url += "&randnum=" + Math.random();
                 }
                 else
                 {
                     url += "?randnum=" + Math.random();
                 }
                
                
                 open(method, url, sendtype);
                
                 // 设定请求编码方式
                 //.net环境加charset="GB2312"字段
                 setRequestHeader("Content-Type", datatype);
               
                 send(data);
                 onreadystatechange = function ()
                 {                  
                     if (objXMLHttp.readyState == 4 && (objXMLHttp.status == 200 || objXMLHttp.status == 304))
                     {
                         if(callback != null)
                         {
                             callback(objXMLHttp);
                         }
                     }
                 }
                
               
             }
             catch(e)
             {
                 alert(e+"/n"+'你的浏览器版本太低,建议你升级浏览器');
             }
         }
     }
    
    
}


类别:asp编程 | 添加到搜藏 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码:
 

     

©2008 Baidu