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) {
    				
    			}
    		});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值