/* name: Ajax
/* @params: method, url, data, success, type
/* @return: json, script
/* @author: cdll
/*/
function Ajax(method, url, data, success, type){
  if(!!type){
    if(type== 'script'){
      loadJS(url, success);
    }
    return
  }
  //创建一个兼容的XMLHttpRequest对象
	var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
    //向服务器发送请求
    //method：请求的类型；GET 或 POST
    //url：请求的URL
    //async：true(异步)或 false(同步)
	if(method.toUpperCase() == "GET" && data){
		url += "?" + data;
	}
	xhr.open(method, url, true);
	if(method.toUpperCase() == 'POST'){
		xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');
    //string：仅用于 POST 请求
		xhr.send(data);
    /*
    在以下情况中，请使用 POST 请求：
    无法使用缓存文件（更新服务器上的文件或数据库）
    向服务器发送大量数据（POST 没有数据量限制）
    发送包含未知字符的用户输入时，POST 比 GET 更稳定也更可靠
    */
	}
	else{
		xhr.send();
	}
  //存储函数（或函数名），每当 readyState 属性改变时，就会调用该函数
	xhr.onreadystatechange = function(){
    /*
    0: 请求未初始化
    1: 服务器连接已建立
    2: 请求已接收
    3: 请求处理中
    4: 请求已完成，且响应已就绪
    */
		if(xhr.readyState == 4){
			if(xhr.status == 200){
				success && success(xhr.responseText);
			}
			else{
        console.warn(xhr.status, JSON.parse(xhr.responseText))
//		    console.error("(T.T)//不好意思，服务器出了点小问题，请重新刷新一下" + xhr.status);
			}
		}
	}
  function loadJS(url, callback) {
    var doc = document, script = doc.createElement('script'), body = doc.getElementsByTagName('body')[0];
    script.type = 'text/javascript';
    if (script.readyState) {
      script.onreadystatechange = function() {
        if (script.readyState == 'loaded' || script.readyState == 'complete') {
          script.onreadystatechange = null;
          callback && callback();
        }
      }
    } else {
      script.onload = function() {
        callback && callback();
      }
    }
    script.src = url;
    body.appendChild(script);
  }
}

@@ -276,17 +276,18 @@
 uest%E5%AF%B9%E8%B1%A1%0D%0A
-%09
+  
 var xhr 
@@ -474,17 +474,18 @@
 se(%E5%90%8C%E6%AD%A5)%0D%0A
-%09
+  
 if(metho
@@ -520,18 +520,20 @@
 data)%7B%0D%0A
-%09%09
+    
 url += %22
@@ -544,21 +544,23 @@
  data;%0D%0A
-%09%7D%0D%0A%09
+  %7D%0D%0A  
 xhr.open
@@ -581,17 +581,18 @@
 true);%0D%0A
-%09
+  
 if(metho
@@ -620,18 +620,20 @@
 OST')%7B%0D%0A
-%09%09
+    
 xhr.setR
@@ -726,18 +726,20 @@
 OST %E8%AF%B7%E6%B1%82%0D%0A
-%09%09
+    
 xhr.send
@@ -890,22 +890,26 @@
 */%0D%0A
-%09%7D%0D%0A%09
+  %7D%0D%0A  
 else%7B%0D%0A
-%09%09
+    
 xhr.
@@ -917,17 +917,18 @@
 end();%0D%0A
-%09
+  
 %7D%0D%0A  //%E5%AD%98
@@ -966,17 +966,18 @@
 %E4%BC%9A%E8%B0%83%E7%94%A8%E8%AF%A5%E5%87%BD%E6%95%B0%0D%0A
-%09
+  
 xhr.onre
@@ -1103,18 +1103,20 @@
     */%0D%0A
-%09%09
+    
 if(xhr.r
@@ -1133,19 +1133,22 @@
 == 4)%7B%0D%0A
-%09%09%09
+      
 if(xhr.s
@@ -1167,12 +1167,16 @@
 )%7B%0D%0A
-%09%09%09%09
+        
 succ
@@ -1214,17 +1214,23 @@
 );%0D%0A
-%09%09%09%7D%0D%0A%09%09%09
+      %7D%0D%0A      
 else
@@ -1370,20 +1370,26 @@
 );%0D%0A
-%09%09%09%7D%0D%0A%09%09%7D%0D%0A%09
+      %7D%0D%0A    %7D%0D%0A  
 %7D%0D%0A 

fix ajax module;