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 }
浙公网安备 33010602011771号