EXTJS Ext.Ajax.request()问题

时间:2013-02-04 15:22:19

标签: extjs4.1

所以我想我可能会错过Ext.Ajax.request();

所以我有代码执行以下操作:

Ext.Ajax.request({
   url : 'myurl',
   success : function(){
     alert('success 1');   
   },
   callback : function(){
     alert('callback');
   }

});

然后我再做一个像这样的ajax调用:

Ext.Ajax.request({
   url : 'myurl',
   success : function(){
     alert('success 2');   
   }

});

如果我没有定义回调函数,则仍会设置第一次调用中的旧回调函数。因此,当它运行时,它仍然调用前面定义的旧回调函数。所以我将听众添加到

Ext.Ajax.on('beforerequest', function(c, o, e){
     //The options has all my previous options
});

所以我在这里放了一个断点并查看了选项,如果在我的第二次调用或任何其他ajax调用之后没有覆盖回调或任何其他选项与emptyFunction()或任何其他请求配置以前的值停留。因此,如果在我的第二次调用中我没有重新定义成功函数,则第一次调用成功函数仍然存在。有没有办法在下次通话时清除以前的所有选项?我可以在每次新的通话中清除它们。但我不明白为什么如果电话不相关,我上次电话的选项仍然存在?

1 个答案:

答案 0 :(得分:2)

作为docs州,Ext.Ajax是单身人士。

如果您查看其code,您会看到option配置将保留在通话之间。

所以我不敢说你用错了方法。理想情况下,您应该定义每次调用成功或失败时会发生什么。

虽然这会起作用但确实会出现:

var iAjax = new Ext.data.Connection();
iAjax.request({
    // unique config here.
});