百度空间 | 百度首页 
 
查看文章
 
js ajax操作
2008年08月08日 星期五 下午 02:07
function js_Ajax(method,synchronous){

    this._httpReq = false; /*ajax初始化对象*/
    this.method = method; /*get|post*/
    this.syn = synchronous;   /*是否采用异步请求,默认true*/
    this.url = "";   /*提交异步请求的url地址*/
    this.resType = ""; /*异步请求返回数据类型text|xml*/
    this.callback = ""; /*异步请求完成后的回滚函数*/
    this.loading = ""; /*load函数*/
    this.content = null; /*Ajax中send方法的参数*/
    this.readystate = -1; /*ajax的请求状态*/
    this.state = -1; /*http请求响应代码*/

/************ get/set方法开始 ***************/
     //设置提交异步请求的url地址
     this.setUrl = function (url){
          this.url = url;
     }
     //设置异步请求返回数据类型text|xml
     this.setResType = function (restype){
          this.resType = restype;
     }
     //设置回滚函数
     this.setCallback = function (func){
          this.callback = func;
     }
     //设置load函数
     this.setLoading = function (loadFunc){
          this.loading = loadFunc;
     }
     //设置send自带的参数值,默认null
     this.setContent = function (contents){
        this.content = contents;
     }
/*********get/set方法结束*******/
/*********状态显示方法*********/
     //调用window.alert方法
     this.alert = function (msg){
         window.alert(msg);
     }
//调用window.status的方法
     this.status = function (msg){
          window.status = msg;
     }
/*********状态显示方法结束*********/
/*************执行方法开始*****************/
     //创建HttpXMLRequest
     this.createXMLRequest = function(){
     if(window.XMLHttpRequest){
           this._httpReq = new XMLHttpRequest();
  
           if(this._httpReq.overrideMimeType){
               this._httpReq.overrideMimeType("text/xml");
           }
      }else if(window.ActiveXObject){
            try{
                 this._httpReq = new ActiveXObject("Msxml2.XMLHTTP");
            }catch(e){
                  try{
                       this._httpReq = new ActiveXObject("Microsoft.XMLHTTP");
                  }catch(e){}
            }
      }
}

     //初始化ajax对象
     this.init = function(){
          this.createXMLRequest();
     }
     //发送一个http请求
     this.send = function (){
          if(this.resType.toLowerCase()=="post"){
                  _httpReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
          }
          this._httpReq.open(this.method,this.url,this.syn);
          this._httpReq.send(this.content);
     }
        //取消一个http请求
        this.abort = function (){
               this._httpReq.abort();
        }
      this.callbackState = function(){
            switch(this._httpReq.readyState){
                   case 0:
                            this.readystate = 0;
                            break;
                   case 1:
                            this.readystate = 1;
                            break;
                   case 2:
                            this.readystate = 2;
                            break;
                   case 3:
                            this.readystate = 3;
                            break;
                   case 4:
                            this.readystate = 4;
                            switch(this._httpReq.status){
                                   case 200:
                                           eval(this.callback);
                                           break;
                                   case 202:
                                           this.status("请求处理中,还没处理完毕!");
                                           break;
                                   case 400:
                                           this.status("错误的请求!");
                                           break;
                                   case 404:
                                           this.status("请求资源未找到!");
                                           break;
                                   case 500:
                                           this.status("内部服务器错误,请联系管理员!");
                                           break;
                                   default:
                                           this.status("返回数据失败,"+this._httpReq.status);
                                           break;
                              }
                              break;
                   default:
                           this.readystate = 0;
                           break;
             }
     }
     this.onReadyStateChange = function (){
            var owner = this;
            this._httpReq.onreadystatechange = function(){
                   owner.callbackState.call(owner);
            }
     }
/*************执行方法结束*****************/
}

类别:jscript‖xml‖ajax | 添加到搜藏 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu