ExtJs ajax调用汇总

前端之家收集整理的这篇文章主要介绍了ExtJs ajax调用汇总前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Js代码
  1. //异步ajax调用
  2. /**
  3. *异步调用ajax,成功后返回值,作为回调函数的参数调用失败会提示
  4. *
  5. *@param{}
  6. *urlStr
  7. *@param{}
  8. *paramsObj
  9. *@param{}
  10. *callbackFunc
  11. */
  12. functionajaxCall(urlStr,paramsObj,callbackFunc){
  13. Ext.Ajax.request({
  14. url:urlStr,
  15. params:paramsObj,
  16. method:'POST',
  17. success:function(response){
  18. if(callbackFunc){
  19. varresult=Ext.util.JSON
  20. .decode(response.responseText);
  21. varcbfn=callbackFunc.createCallback(result);
  22. cbfn();
  23. }
  24. },
  25. failure:function(){
  26. Ext.Msg.alert("提示","方法调用失败");
  27. }
  28. });
  29. }
Js代码
  1. /**
  2. *通用JS同步ajax调用返回jsonObject
  3. *
  4. *@param{}
  5. *urlStr
  6. *@param{}
  7. *paramsStr为字符串键值对形式“key=value&key2=value2”
  8. *@return{}返回jsonObject
  9. */
  10. functionajaxSyncCall(urlStr,paramsStr){
  11. varobj;
  12. varvalue;
  13. if(window.ActiveXObject){
  14. obj=newActiveXObject('Microsoft.XMLHTTP');
  15. }elseif(window.XMLHttpRequest){
  16. obj=newXMLHttpRequest();
  17. }
  18. obj.open('POST',urlStr,false);
  19. obj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  20. obj.send(paramsStr);
  21. varresult=Ext.util.JSON.decode(obj.responseText);
  22. returnresult;
  23. }
Js代码
  1. //EXTJS同步ajax调用
  2. varconn=Ext.lib.Ajax.getConnectionObject().conn;
  3. conn.open("GET",'yoururl',false);
  4. conn.send(null);
  5. alert(conn.responseText);

EXTJS 修改Ext.Ajax.request真正的请求方法Ext.lib.Ajax.request ,通过sync:true实现同步调用ajax

Js代码
  1. Ext.lib.Ajax.request=function(method,uri,cb,data,options){
  2. if(options){
  3. varhs=options.headers;
  4. if(hs){
  5. for(varhinhs){
  6. if(hs.hasOwnProperty(h)){
  7. this.initHeader(h,hs[h],false);
  8. }
  9. }
  10. }
  11. if(options.xmlData){
  12. if(!hs||!hs['Content-Type']){
  13. this.initHeader('Content-Type','text/xml',false);
  14. }
  15. method=(method?method:(options.method?options.method:'POST'));
  16. data=options.xmlData;
  17. }elseif(options.jsonData){
  18. if(!hs||!hs['Content-Type']){
  19. this.initHeader('Content-Type','application/json',false);
  20. }
  21. method=(method?method:(options.method?options.method:'POST'));
  22. data=typeofoptions.jsonData=='object'?Ext.encode(options.jsonData):options.jsonData;
  23. }
  24. }

return this["sync" in options ? "syncRequest" : "asyncRequest"](method,data);//这句制定调用方法,如果sync传递了就调用syncRequest, 否则调用原来的方法asyncRequest};

Js代码
  1. Ext.lib.Ajax.syncRequest=function(method,callback,postData)
  2. {
  3. varo=this.getConnectionObject();
  4. if(!o){
  5. returnnull;
  6. }
  7. else{
  8. o.conn.open(method,false);
  9. if(this.useDefaultXhrHeader){
  10. if(!this.defaultHeaders['X-Requested-With']){
  11. this.initHeader('X-Requested-With',this.defaultXhrHeader,true);
  12. }
  13. }
  14. if(postData&&this.useDefaultHeader&&(!this.hasHeaders||!this.headers['Content-Type'])){
  15. this.initHeader('Content-Type',this.defaultPostHeader);
  16. }
  17. if(this.hasDefaultHeaders||this.hasHeaders){
  18. this.setHeader(o);
  19. }
  20. o.conn.send(postData||null);
  21. this.handleTransactionResponse(o,callback);
  22. returno;
  23. }
  24. };

Js代码
  1. //调用
  2. Ext.Ajax.request({
  3. url:'',
  4. scope:this,
  5. sync:true,
  6. success:function(){}
  7. });

原文

猜你在找的Ajax相关文章