在Sencha touch应用程序中,我可以使用某种ajax预过滤器并为我的所有请求(来自商店和模型)提供URL根目录吗?
还有一件事,
有没有办法将AUTH-TOKEN标头添加到每个ajax请求中?
谢谢!
答案 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
});