javascript Ext.Ajax.extraParams:添加默认发送的新参数

rseugnpd  于 2023-05-16  发布在  Java
关注(0)|答案(1)|浏览(103)

我有一个用ExtJs 7编写的更大的应用程序。现在,我需要从某个点开始向所有ajax-calls和ajax-store-calls添加一个extra-Parameter。
要改变所有的ajax-calls和所有的stores需要做大量的工作,所以我们的想法是定义一个override或prototype,在那之后完成的所有调用都应该使用new参数。
我试过:

Ext.override(Ext.Ajax, { extraParams: {myNewParam:'New Param' }});

Ext.Ajax.extraParams = 
{   myNewParam:'New Param'
};

Ext.Ajax.prototype.extraParams = 
{   myNewParam:'New Param'
};

但是myNewParam要么没有传输,要么我得到JavaScript错误。
做这件事的正确方法是什么?

xqk2d5yq

xqk2d5yq1#

我不确定这是你需要的,但这是一种可能性。
您可以使用附加到Ext.Ajax的事件侦听器,该侦听器在每个请求之前执行。有一个beforerequest事件,请查看此处的文档。
在应用程序中找到一个只运行一次的位置,例如在Application.js中。加上这个:

Ext.Ajax.on('beforerequest', function(conn, options, eOpts) {

});

您需要以某种方式确定是否需要为这个特定请求添加新的额外参数。
在上面的函数中,所有请求选项都在options参数中。例如,您在options.url中有URL,在options.params中有参数。
你可以添加额外的param,比如:

options.params.myNewParam = 'New Param';

(You可以在这里做很多其他的事情,例如你可以用return false;等取消请求。

相关问题