细雨水上飘

导航

 

1 纯javascript 封装发送ajax数据

2 post、get方式 发送数据

3 修改了异步传输方法的错误

GLOBAL.namespace("Ajax");
/**
 * 同步ajax 返回json Object
 * 
 * @param {}
 *            urlStr
 * @param{} type GET or POST方式
 * @param {}
 *            paramsStr 与服务器约定 如果为GEt方式 则必须为 key1 = value & key2 = value
 *            的形式加在url后
 * @return {} 返回字符串
 */
GLOBAL.Ajax.ajaxSyncCall = function(urlStr, type, paramsStr) {
    var obj;
    var value;
    if (window.ActiveXObject) {
        obj = new ActiveXObject('Microsoft.XMLHTTP');
    } else if (window.XMLHttpRequest) {
        obj = new XMLHttpRequest();
    }
    if (type == "POST") {
        obj.open('POST', urlStr, false);
        obj.setRequestHeader('Content-Type',
                'application/x-www-form-urlencoded');
        obj.send(paramsStr);
    } else if(type == "GET")
    {
        obj.open('GET', urlStr, false);
        obj.send(null);
    }
    var result = null;
    if (obj.readyState == 4) {
        if (obj.status == 200) {
            result = obj.responseText;
        }
    }
    return result;
}
/* 用于ajax异步调用方法 */
GLOBAL.Ajax.ajaxAsynCallBack = function(xhr, callBack,callScope) {
    return function()
    {
        var result = null;
        if (xhr.readyState == 4) {
        if (xhr.status == 200) {
            result = xhr.responseText;
            if(typeof(callScope)!="undefined" && callScope!=null)
            {
               callBack.apply(callScope,result);
            }else{
               callBack(result);
            }
        }
        }
    }
}
/**
 * ajax异步提交方式
 * 
 * @param {}
 *            urlStr
 * @param {}
 *            GET or POST方式
 * @param {}
 *            paramJsonObj
 * @param {}
 *            callbackFunc
@param {}
 *            callScope
 */
GLOBAL.Ajax.ajaxAsynCall = function(urlStr, type, paramsStr, callBack,callScope) {
    var obj;
    var value;
    if (window.ActiveXObject) {
        obj = new ActiveXObject('Microsoft.XMLHTTP');
    } else if (window.XMLHttpRequest) {
        obj = new XMLHttpRequest();
    }
    obj.onreadystatechange = GLOBAL.Ajax.ajaxAsynCallBack(obj,callBack,callScope);
    if (type == "POST") {
        obj.open('POST', urlStr, true);
        obj.setRequestHeader('Content-Type',
                'application/x-www-form-urlencoded');
        obj.send(paramsStr);
    } else if(type == "GET")
    {
        obj.open('GET', urlStr, true);
        obj.send(null);
    }
}

 

需要用到的参数方法,在基础类中:

1 创建post字符串

2 创建get字符串

 1 /*
 2  * @parameters 为一个对象
 3  * 返回一个带值的url字符串
 4 */
 5 GLOBAL.TOOL.creatGetParam=function(url,parameters)
 6 {
 7    var rtnStr= null;
 8    var tmpStr='',str;
 9    var i = 0;
10    rtnStr = url+"?";
11    for (var key in parameters) {
12         str = escape(key) +"="+escape(parameters[key]);
13         if(i==0)
14         {
15             tmpStr+=str;
16             i++;
17         }
18         else{
19             tmpStr+='&'+str;
20         }
21    }
22    rtnStr+=tmpStr;
23    return rtnStr;
24 }
25 
26 GLOBAL.TOOL.creatPostParam=function(parameters)
27 {
28     var rtnStr ='';
29     var i = 0;
30     var tmpStr='',str;
31     for(var key in parameters)
32     {
33         str = escape(key) +"="+escape(parameters[key]);
34         if(i==0)
35             {
36              tmpStr+=str;
37              i++;
38             }
39         else 
40             {
41              tmpStr+='&'+str;
42             }
43     }
44     return tmpStr;
45 }

 

posted on 2014-10-20 12:16  细雨水上飘  阅读(300)  评论(0)    收藏  举报