ExtJs ajax调用汇总

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

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

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

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

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

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

原文

猜你在找的Ajax相关文章