日期:2014-05-16 浏览次数:20362 次
xu.pkg('xu.net'); //xu.net.ajax({ // url: 'reg.php',method: 'POST', // data: {user:$eo('user').val(),pwd:$eo('password').val()} //参数 // success: function(responseText) { // $eo("tips").html(responseText) //传入函数的值以便给你操作。 // } //}); xu.apply(xu.net,{ ajax: function(s,isnew){ if (!xu.verify._obj(s)) return ; var data = s.data ? this._dataParser(s.data):null; with(this._getXhr(isnew)){ // this => xu.net open(s.method||"GET" ,s.url,((s.async!=undefined)?s.async:true)); setRequestHeader("X_REQUESTED_WITH","xmlhttprequest"); setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8"); send(data); onreadystatechange=function(){// FF: this=>onreadystatechange;IE: this=>window // readyState<3 读取status会出现未知错误 if(readyState==4&&status==200){s.success(responseText)} }; } } , _dataParser: function(data){ // 从对象生成查询格式的字符串 if (!xu.verify._obj(data)) return null; var param_key = function(key,pkey){ if(!pkey)return key ; return pkey + '[' + key + ']' ; }; var obj2qparams = function(obj,pkey){ var qstr = '' ,pkey = pkey || null ; for(var p in obj){ if (obj.hasOwnProperty(p) && xu.verify._str(p)){ if (xu.verify._obj(obj[p])){ qstr += obj2qparams(obj[p],param_key(p,pkey)); }else qstr += param_key(p,pkey) + '=' + obj[p] + '&' ; } } return qstr ; }; // demo // data['user'] = {name:'se',ps:123,role:{name:'admin',group:{name:'backup'}}}; return obj2qparams(data).replace(/&$/,''); } , _xhr : null , _getXhr: function(isNew){ return isNew?this._newXhr():( this._xhr?this._xhr:(this._xhr=this._newXhr()) ); }, _newXhr: function(){return window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();} , get: function(url,data,callback){ this.ajax({url: url,data: data,success:callback}); }, post: function(url,data,callback){ this.ajax({url: url,method:'POST',data: data,success:callback}); } }); xu.apply(xu.dom.EObject.prototype,{ load: function(url,data,callback){ var _this = this ; var callback = callback || function(rt){return rt;}; xu.net.post(url,data,function(rt){ rt = callback(rt,_this.ele); if (rt) _this.html(rt); }); } });
?