use*_*612 26 javascript extjs extjs4 extjs-mvc
我有一种情况,我ajax
从各种Ext gridpanel
等服务器向服务器发出请求.在管理区域.
如果没有活动,则登录用户将被注销.5分钟这是正常的.
在这种情况下,服务器将重定向发送回403
登录页面.
现在我插入一个:
listeners: {
exception: function(proxy, response, operation, eOpts) {
if (response.status == '403')
window.location = 'login';
}
}
Run Code Online (Sandbox Code Playgroud)
对于每个store's
代理都有点矫枉过正.
有人可以很友好,让我知道如何为ExtJS和服务器之间的所有通信添加一个监听器?
我正在使用MVC应用程序架构,所以它可能是一个controller.js
或一个内衬app.js
.
谢谢
小智 28
在您的应用程序的开头插入以下代码段.通过这个每个响应,无论是来自商店还是表单或......,都将被检查并重定向到登录页面.
Ext.Ajax.on('requestexception', function (conn, response, options) {
if (response.status === 403) {
window.location = 'login';
}
});
Run Code Online (Sandbox Code Playgroud)
我不确定这是否会捕获所有ajax请求,但假设您使用AjaxProxy进行与服务器的所有通信它应该工作:处理Ext.Ajax单例中的'requestexception'事件
Ext.Ajax.on('requestexception', function(conn, response, options, eOpts) {
//your error handling here
});
Run Code Online (Sandbox Code Playgroud)
我没有尝试过,但如果你这样做,你能在这里发布更新吗?
一个更完整的解决方案,它将是一个全能的是:
Ext.util.Observable.observe(Ext.data.Connection, {
requestexception: function(conn, response, options) {
if(response.status == '403')
window.location = 'login';
}
});
Run Code Online (Sandbox Code Playgroud)
这是因为底层类Ext.data.Connection
不仅用于,Ext.Ajax
而且Ext.data.Proxy
用于使用的类Ext.data.Store, Ext.data.Model
.这可以处理store.load()
和等调用的异常model.save()
.这应该是一个更完整的全能处理程序.