Ext.Ajax.request参数中并没有同步这个参数,但是很多时候需要同步请求来提供Componnet中的数据,而且没有add方法,比如 checkboxgroup 中动态的check选项,所以应该修改Ext.Ajax.request真正的请求方法Ext.lib.Ajax.request
具体代码来自EXT官方论坛:
Ext.lib.Ajax.request = function(method, uri, cb, data, options) {
if(options){
var hs = options.headers;
if(hs){
for(var h in hs){
if(hs.hasOwnProperty(h)){
this.initHeader(h, hs[h], false);
}
}
}
if(options.xmlData){
if (!hs || !hs['Content-Type']){
this.initHeader('Content-Type', 'text/xml', false);
}
method = (method ? method : (options.method ? options.method : 'POST'));
data = options.xmlData;
}else if(options.jsonData){
if (!hs || !hs['Content-Type']){
this.initHeader('Content-Type', 'application/json', false);
}
method = (method ? method : (options.method ? options.method : 'POST'));
data = typeof options.jsonData == 'object' ? Ext.encode(options.jsonData) : options.jsonData;
}
}
return this["sync" in options ? "syncRequest" : "asyncRequest"](method, uri, cb, data);//这句制定调用的方法,如果sync传递了就调用syncRequest, 否则调用原来的方法asyncRequest};
syncRequest方法如下:
Ext.lib.Ajax.syncRequest = function(method, uri, callback, postData)
{
var o = this.getConnectionObject();
if (!o) {
return null;
}
else {
o.conn.open(method, uri, false);
if (this.useDefaultXhrHeader) {
if (!this.defaultHeaders['X-Requested-With']) {
this.initHeader('X-Requested-With', this.defaultXhrHeader, true);
}
}
if(postData && this.useDefaultHeader && (!this.hasHeaders || !this.headers['Content-Type'])){
this.initHeader('Content-Type', this.defaultPostHeader);
}
if (this.hasDefaultHeaders || this.hasHeaders) {
this.setHeader(o);
}
o.conn.send(postData || null);
this.handleTransactionResponse(o, callback);
return o;
}
};
调用:
Ext.Ajax.request({
url:'',
scope:this,
sync:true,
success:function(){}
});
分享到:
相关推荐
这是一个对Ext中的AJAx进行扩展了的方法,使其可以支持同步访问
在EXTJS库中,`Ext.Ajax.request`是用于发送Ajax请求的核心方法,它支持异步和同步操作。本文将详细解析如何利用`Ext.Ajax.request`实现同步请求,并探讨其背后的原理和注意事项。 首先,我们需要理解Ajax的本质,...
标题中提到的"extjs ajax同步请求所需js"是指ExtJS框架中用于执行同步Ajax请求的相关JavaScript代码。在ExtJS中,Ajax请求通常通过`Ext.Ajax`对象来实现。与传统的异步请求不同,同步请求会阻塞浏览器,直到请求完成...
标题提到的"ext-basex.js进行Ext.Ajax.request同步请求 FF无法正常"问题,涉及到浏览器兼容性和异步/同步请求的理解。 `Ext.Ajax.request`是ExtJS中的一个方法,用于发起Ajax(异步JavaScript和XML)请求。它可以...
首先,`Ext 中文文档.chm`是EXT的中文参考手册,包含了EXT的各种类库、方法、事件和配置选项的详细介绍。在学习EXT时,这是一个不可或缺的参考资料。你可以通过这个文档了解到EXT的基础组件,如表格(Grid)、面板...
下面将详细介绍`Ext.Ajax`的一些关键方法和使用场景: 1. **发送请求:** `Ext.Ajax.request`是核心方法,用于发起HTTP请求。你可以设置参数如URL、方法(GET或POST)、数据、回调函数等。例如: ```javascript ...
`Ext.Ajax.request()`方法是进行Ajax请求的核心函数,它接受一系列参数,包括URL、方法(GET或POST)、请求数据、回调函数等。同步与异步的控制则通过`async`参数来决定。默认情况下,`async`设置为`true`,意味着...
在EXTJS框架中,`Ext.Ajax.request`是进行异步AJAX通信的核心方法,它提供了与服务器端交互的能力,支持GET、POST等多种HTTP请求方式。这篇文章将深入探讨`Ext.Ajax.request`的使用,以及在实际应用中可能遇到的小...
2. **数据绑定**:Ajax-ext支持双向数据绑定,使得UI状态与后台数据同步,降低了处理用户交互的复杂性。 3. **Ajax操作**:提供简便的Ajax接口,可以轻松实现异步请求,获取或更新服务器端数据。 4. **事件驱动**...
EXT的Ajax功能还支持配置各种选项,如设置请求头、超时时间、同步/异步请求、数据编码方式等。例如,你可以设定请求头来添加自定义的HTTP头部信息: ```javascript headers: { 'Content-Type': 'application/json' ...
在 ExtJS 3.0 中,可以使用 `Ext.Ajax.request` 方法来发起 AJAX 请求。通过将 `async` 参数设置为 `false` 来实现同步请求。此外,还可以通过回调函数来处理请求成功或失败的情况。 #### 四、兼容性问题及解决方案...
2. **数据绑定**:EXT通过数据绑定机制实现了视图与模型的自动同步,数据变化时界面会自动更新,反之亦然,极大地提高了开发效率。 3. **AJAX支持**:EXT内置了AJAX功能,可以方便地进行异步数据交互,通过JSON或...
ExtJs提供了Ext.Ajax.request方法来进行Ajax请求,但默认情况下,该方法不支持waitMsg属性,不像fp.form.submit方法提供了waitTitle和waitMsg属性来实现等待提示。为了解决这一限制,我们可以采用Ext.MessageBox的...
EXT4的数据管理组件提供了强大的数据绑定机制,能轻松地将数据与视图进行同步。 4. **Util**: Util通常代表实用工具或通用函数库,这部分可能包括EXT4中的各种辅助函数,用于提高开发效率,如日期时间处理、字符...
这个压缩包文件“ExtProject”显然是一个基于Ext框架的项目,它涵盖了数据库操作、Ajax请求以及Store的使用,是初学者学习Ext的理想资源。 首先,让我们深入了解一下Ext中的"增删改查"(CRUD)操作。CRUD代表创建...
`Ext.form.Basic`对象提供了`getValues()`方法来获取表单字段的值,而`Ext.Ajax.serializeForm()`可以将表单数据转换为URL编码的字符串,适用于POST请求的data参数。 5. **错误处理和提示**:在`failure`回调中,你...
本文将主要探讨Extjs框架下实现Ajax同步POST请求时参数的发送方式。 首先,了解Extjs框架中的Ajax请求机制是非常重要的。Extjs提供了一个便捷的Ajax调用方式,通过Ext.Ajax.request方法,开发者可以非常方便地发起...
它通过内置的Ajax类(如`Ext.Ajax`)提供异步通信,使得后台数据交换变得轻松。开发者可以通过配置URL、方法(GET或POST)、参数等,实现与服务器的数据交互,并处理返回的结果。此外,它还支持JSONP(JSON with ...
文档中可能涵盖了EXT的高级特性,如数据网格、图表、树形视图等复杂组件的使用,还有EXT的AJAX通信、状态管理和国际化支持等内容。此外,它可能还会介绍EXT的MVC(Model-View-Controller)设计模式,帮助你理解EXT...