Javascript EXTJS 4-全局异常侦听器
我的情况是,我从管理区域的各种ExtJavascript EXTJS 4-全局异常侦听器,javascript,extjs,extjs4,extjs-mvc,Javascript,Extjs,Extjs4,Extjs Mvc,我的情况是,我从管理区域的各种Extgridpanel等向服务器发出ajax请求 如果5分钟内没有活动,则登录用户将注销,这是正常的 在这种情况下,服务器将重定向403发送回登录页面 Ext.Ajax.on('requestexception', function (conn, response, options) { if (response.status === 403) { window.location = 'login'; } }); 现在我插入一个:
gridpanel
等向服务器发出ajax
请求
如果5分钟内没有活动,则登录用户将注销,这是正常的
在这种情况下,服务器将重定向403
发送回登录页面
Ext.Ajax.on('requestexception', function (conn, response, options) {
if (response.status === 403) {
window.location = 'login';
}
});
现在我插入一个:
listeners: {
exception: function(proxy, response, operation, eOpts) {
if (response.status == '403')
window.location = 'login';
}
}
到每个商店的代理,这有点过分了
有人能告诉我如何在ExtJS和服务器之间的所有通信中添加一个侦听器吗
我使用的是MVC应用程序架构,因此它可能是controller.js
或app.js
中的一行程序
谢谢在应用程序的开头插入以下代码片段。使用此将检查每个响应,无论是来自商店、表单还是…,并将其重定向到登录页面
Ext.Ajax.on('requestexception', function (conn, response, options) {
if (response.status === 403) {
window.location = 'login';
}
});
我不确定这是否会捕获所有ajax请求,但假设您使用AjaxProxy与服务器进行所有通信,它应该可以工作:
在Ext.Ajax单例中处理“requestexception”事件
像这样的
Ext.Ajax.on('requestexception', function(conn, response, options, eOpts) {
//your error handling here
});
我还没有尝试过,但如果你尝试过,你能在这里发布更新吗?一个更完整的解决方案,它将是一个包罗万象的解决方案,如下所示:
Ext.util.Observable.observe(Ext.data.Connection, {
requestexception: function(conn, response, options) {
if(response.status == '403')
window.location = 'login';
}
});
这是因为基础类Ext.data.Connection
不仅在Ext.Ajax
中使用,而且在Ext.data.Store、Ext.data.Model
中使用Ext.data.Proxy
。这将处理诸如store.load()
和model.save()等调用的异常。这应该是一个更完整的全面处理程序
请参见中的更多详细信息。有趣的是,我们两人同时回答了这个问题,并且给出了相同的答案。所以它一定是正确的。靶心!非常感谢。extjs5.x中没有Ext.util.Observable.Observable函数。您必须使用Ext.Ajax.on不可以,在Ext JS 5.0.1typeof Ext.util.Observable.observed.observed中将输出“函数”