- //异步ajax调用@H_404_13@
- /**@H_404_13@
- *异步调用ajax,成功后返回值,作为回调函数的参数调用失败会提示@H_404_13@
- *@H_404_13@
- *@param{}@H_404_13@
- *urlStr@H_404_13@
- *@param{}@H_404_13@
- *paramsObj@H_404_13@
- *@param{}@H_404_13@
- *callbackFunc@H_404_13@
- */@H_404_13@
- functionajaxCall(urlStr,paramsObj,callbackFunc){@H_404_13@
- Ext.Ajax.request({@H_404_13@
- url:urlStr,@H_404_13@
- params:paramsObj,@H_404_13@
- method:'POST',@H_404_13@
- success:function(response){@H_404_13@
- if(callbackFunc){@H_404_13@
- varresult=Ext.util.JSON@H_404_13@
- .decode(response.responseText);@H_404_13@
- varcbfn=callbackFunc.createCallback(result);@H_404_13@
- cbfn();@H_404_13@
- }@H_404_13@
- },@H_404_13@
- failure:function(){@H_404_13@
- Ext.Msg.alert("提示","方法调用失败");@H_404_13@
- }@H_404_13@
- });@H_404_13@
- }@H_404_13@
- /**@H_404_13@
- *通用JS同步ajax调用返回jsonObject@H_404_13@
- *@H_404_13@
- *@param{}@H_404_13@
- *urlStr@H_404_13@
- *@param{}@H_404_13@
- *paramsStr为字符串键值对形式“key=value&key2=value2”@H_404_13@
- *@return{}返回jsonObject@H_404_13@
- */@H_404_13@
- functionajaxSyncCall(urlStr,paramsStr){@H_404_13@
- varobj;@H_404_13@
- varvalue;@H_404_13@
- if(window.ActiveXObject){@H_404_13@
- obj=newActiveXObject('Microsoft.XMLHTTP');@H_404_13@
- }elseif(window.XMLHttpRequest){@H_404_13@
- obj=newXMLHttpRequest();@H_404_13@
- }@H_404_13@
- obj.open('POST',urlStr,false);@H_404_13@
- obj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');@H_404_13@
- obj.send(paramsStr);@H_404_13@
- varresult=Ext.util.JSON.decode(obj.responseText);@H_404_13@
- returnresult;@H_404_13@
- }@H_404_13@
EXTJS 修改Ext.Ajax.request真正的请求方法Ext.lib.Ajax.request ,通过sync:true实现同步调用ajax
- Ext.lib.Ajax.request=function(method,uri,cb,data,options){@H_404_13@
- if(options){@H_404_13@
- varhs=options.headers;@H_404_13@
- if(hs){@H_404_13@
- for(varhinhs){@H_404_13@
- if(hs.hasOwnProperty(h)){@H_404_13@
- this.initHeader(h,hs[h],false);@H_404_13@
- }@H_404_13@
- }@H_404_13@
- }@H_404_13@
- if(options.xmlData){@H_404_13@
- if(!hs||!hs['Content-Type']){@H_404_13@
- this.initHeader('Content-Type','text/xml',false);@H_404_13@
- }@H_404_13@
- method=(method?method:(options.method?options.method:'POST'));@H_404_13@
- data=options.xmlData;@H_404_13@
- }elseif(options.jsonData){@H_404_13@
- if(!hs||!hs['Content-Type']){@H_404_13@
- this.initHeader('Content-Type','application/json',false);@H_404_13@
- }@H_404_13@
- method=(method?method:(options.method?options.method:'POST'));@H_404_13@
- data=typeofoptions.jsonData=='object'?Ext.encode(options.jsonData):options.jsonData;@H_404_13@
- }@H_404_13@
- }@H_404_13@
return this["sync" in options ? "syncRequest" : "asyncRequest"](method,data);//这句制定调用的方法,如果sync传递了就调用syncRequest, 否则调用原来的方法asyncRequest};
- Ext.lib.Ajax.syncRequest=function(method,callback,postData)@H_404_13@
- {@H_404_13@
- varo=this.getConnectionObject();@H_404_13@
- @H_404_13@
- if(!o){@H_404_13@
- returnnull;@H_404_13@
- }@H_404_13@
- else{@H_404_13@
- o.conn.open(method,false);@H_404_13@
- @H_404_13@
- if(this.useDefaultXhrHeader){@H_404_13@
- if(!this.defaultHeaders['X-Requested-With']){@H_404_13@
- this.initHeader('X-Requested-With',this.defaultXhrHeader,true);@H_404_13@
- }@H_404_13@
- }@H_404_13@
- @H_404_13@
- if(postData&&this.useDefaultHeader&&(!this.hasHeaders||!this.headers['Content-Type'])){@H_404_13@
- this.initHeader('Content-Type',this.defaultPostHeader);@H_404_13@
- }@H_404_13@
- @H_404_13@
- if(this.hasDefaultHeaders||this.hasHeaders){@H_404_13@
- this.setHeader(o);@H_404_13@
- }@H_404_13@
- @H_404_13@
- o.conn.send(postData||null);@H_404_13@
- this.handleTransactionResponse(o,callback);@H_404_13@
- returno;@H_404_13@
- }@H_404_13@
- };@H_404_13@