Sencha Touch ajax prefilter,为所有ajax请求提供url root

时间:2014-04-16 07:36:18

标签: sencha-touch sencha-touch-2

在Sencha touch应用程序中,我可以使用某种ajax预过滤器并为我的所有请求(来自商店和模型)提供URL根目录吗?

还有一件事,

有没有办法将AUTH-TOKEN标头添加到每个ajax请求中?

谢谢!

2 个答案:

答案 0 :(得分:0)

如果您是通过Ext.data.proxy.Ajax.url在商店代理商上设置网址,则可以通过以下两种方式之一完成此操作。

一:你可以扩展(或覆盖)类,自己添加逻辑。

二:您可以这样配置您的网址:

//someplace define this...
var urlPrefix = function() {
    return '/path/to/API/';
};

//in your store/proxy
Ext.define('MyApp.store.Foo', {
    config : {
        proxy : {
            type : 'ajax',
            url  : urlPrefix() + 'API_endpoint'
        }
    }
});

我以前做了很多次。

对于您的Auth标头,您可以覆盖Ext.data.Connection以包含其他标头。这里的关键是你需要在应用程序生命周期的早期覆盖它,因为其他类具有 Ext.data.Connection 的唯一实例(例如,Ext.Ajax)。

但在提出如何全局应用标题的建议之前,我需要了解更多关于您需要做什么的信息。在这之前需要考虑很多事情。

答案 1 :(得分:0)

Ext.Ajax.request是一个单例实例。您可以点击beforerequest事件并更改/修改网址,添加/删除标头并根据需要进行所有其他修改。这样您就可以捕获所有的ajax请求。您应该可以在app.launch功能中执行此操作。

 Ext.Ajax.on('beforerequest', function(conn, request, eOpts){
      // Your implementaion here.  change request.url, request.headers etc
 });