首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

JavaScript自个儿封装ajax的js

2012-11-26 
JavaScript自己封装ajax的js/*** 执行基本ajax请求,返回XMLHttpRequest*Ajax.request({*url*async 是否异

JavaScript自己封装ajax的js

      /**         * 执行基本ajax请求,返回XMLHttpRequest         *  Ajax.request({         *  url      *  async 是否异步 true(默认)        *  method 请求方式 POST or GET(默认)        *  data 请求参数 (键值对字符串)        *  success 请求成功后响应函数,参数为xhr        *  error 请求失败后响应函数,参数为xhr        *  });         */         Ajax = function() {      function request(opt) {      function fn() {      }      var url = opt.url || "";      var async = opt.async !== false, method = opt.method || 'GET', data = opt.data      || null, success = opt.success || fn, error = opt.failure      || fn;      method = method.toUpperCase();      if (method == 'GET' && data) {      var args = "";      if(typeof data == 'string'){      //alert("string")      args = data;      }else if(typeof data == 'object'){      //alert("object")      var arr = new Array();      for(var k in data){      var v = data[k];      arr.push(k + "=" + v);      }      args = arr.join("&");      }      url += (url.indexOf('?') == -1 ? '?' : '&') + args;      data = null;      }      var xhr = window.XMLHttpRequest ? new XMLHttpRequest()      : new ActiveXObject('Microsoft.XMLHTTP');      xhr.onreadystatechange = function() {      _onStateChange(xhr, success, error);      };      xhr.open(method, url, async);      if (method == 'POST') {      xhr.setRequestHeader('Content-type',      'application/x-www-form-urlencoded;');      }      xhr.send(data);      return xhr;      }      function _onStateChange(xhr, success, failure) {      if (xhr.readyState == 4) {      var s = xhr.status;      if (s >= 200 && s < 300) {      success(xhr);      } else {      failure(xhr);      }      } else {      }      }      return {      request : request      };      }();

      Ajax.request({    url : path + "/report/topn/topn_data.jsp",    data : {    datatype : datatype    },    success : function(xhr) {    onData(xhr.responseText);    },    error : function(xhr) {        }    });

热点排行