我有一个 ExtJs 中的 Web 应用程序。当Ajax请求的响应状态为401时,我需要注销。我使用以下代码:
Ext.Ajax.on('requestexception', function(connection, response, options){
if (response){
if (response.status == 401 && myApp.auth.userInfo != null){
myApp.auth.logout();
}
}
});
它有效,但是当我有一些请求时 myApp.auth.logout();多次调用后无法再次登录,重新加载页面后即可登录。是否有任何请求过滤器或某种使 Ext.Ajax.on('requestException') 同步的方法,该函数 myApp.auth.logout();只调用一次?
最佳答案
尝试添加这个。这可以确保成功和失败回调不会被执行,您的应用程序应该停止(也许以下请求击中您的覆盖是由于失败/回调级联执行),然后执行logout
Ext.Ajax.on('requestexception', function(connection, response, options){
if (response){
if (response.status == 401 && myApp.auth.userInfo != null){
delete options.failure;
delete options.callback;
myApp.auth.logout();
}
}
});
关于ExtJs Ajax请求异常同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29512092/