根据不同的应用场景 ,有时会用到 ajax的不同请求
原理说明:创建XMLHttpRequest 的对象
XMLHttpRequest 对象open(method,url,async) 方法中有3个参数 分别为 请求的类型,请求地址,异步或同步
Ext 2.2-2.3的源码中
Ext.ajax.request 最终调用 Ext.lib.Ajax.request(method,cb,p,o)
Exl.lib.Ajax 位于 ext-base.js
其中源码的最后一句为 return this.asyncRequest(method,data)
这是一个异步请求:o.conn.open(method,true)
由于Ext2.2-2.3没有提供同步请求的方法
所以需要扩展Ext.lib.Ajax
例:
对于同步请求 url 和syns是必须的 其他可以省略
如果标记为 同步请求 将不再调用this.handleReadyState(o,callback);不进行判断和回调函数的处理
因此 例子如下
var cb={ success:this.handleResponse,failure:this.handleFailure,scope:this,argument:{ options:o },timeout:o.timeout==0?o.timeout:o.timeout||this.timeout }; 调用实例: var o=Ext.Ajax.request{ url:'xx.actiom',params:pram,method:'post',sync:true//标记为同步 不标记 默认为异步需要按异步方式写success函数 } if(!o){ return false; } var result =Ext.decode(o.conn.responseText);