0

所以我想我可能错过了 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() 或任何其他请求配置覆盖回调或任何其他选项,则之前的值会保留。因此,如果在我的第二次调用中我没有重新定义成功函数,那么第一次调用成功函数仍然存在。有没有办法在下次通话时清除所有以前的选项?我可以在每次新通话时清除它们。但我不明白为什么如果电话不相关,我上次电话的选择仍然存在?

4

1 回答 1

2

正如文档所述,Ext.Ajax是单例。

如果您查看它的代码,您会看到option配置将在调用之间保留。

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

看起来这确实可行:

var iAjax = new Ext.data.Connection();
iAjax.request({
    // unique config here.
});
于 2013-02-04T15:31:51.947 回答