首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >会话结束后ExtJS 4从ExtJS注销

会话结束后ExtJS 4从ExtJS注销
EN

Stack Overflow用户
提问于 2012-05-11 10:28:38
回答 3查看 3.2K关注 0票数 0

我的后端使用CodeIgniter,前端使用ExtJS 4.1。在CI中的控制器中,我检查用户会话是否结束,如果是,则执行

重定向(‘登录’);

然而,实际发生的情况是-我停下来从服务器获得响应,但我的ExtJS仍然工作,我没有得到丢失的网页。当我在服务器端看到会话结束时,如何从ExtJS重定向?

谢谢

勒隆

EN

回答 3

Stack Overflow用户

发布于 2012-05-11 11:29:13

代码语言:javascript
复制
var runner = new Ext.util.TaskRunner();

// poll some page every 10 seconds
var task = runner.start({
    run: function() {
        Ext.Ajax.request({
            url: 'is_logged_out.php',

            success: function(response){
                var json = Ext.JSON.decode(response.responseText);

                // is we are logged out then redirect somewhere
                if (json.isLoggedOut) {
                    task.destroy();
                    location.href = json.redirectToPage;
                }
            }
        })
    },
    interval: 10000
})
票数 2
EN

Stack Overflow用户

发布于 2012-05-11 20:33:57

您还可以添加特殊的逻辑来处理403个错误(假设您的ExtJs会话已经在后端过期,但是客户端仍然打开了页面--下一个请求应该返回Not Authorized消息)。

查看单例类Ext.Ajax,了解如何订阅全局Ajax事件。

票数 1
EN

Stack Overflow用户

发布于 2012-05-11 11:31:09

当用户的会话结束时,通常由用户自己执行某种行为来完成:例如,用户按下注销按钮。那么,此时,客户机(ExtJS)应该将AJAX请求转发给服务器,如下所示:

代码语言:javascript
复制
Ext.Ajax.request ({
  url: serverUrl + 'logout' ,
  success: function (response) {
    location.href = serverUrl + 'login';
  } ,
  failure: function (response) {
    // Something here to handle the failure
  }
});

当用户注销时,服务器将到达该请求:您的CI应用程序将使用'200 OK HTTP/1.1‘对客户端进行会话和响应,客户端提供将用户重定向到登录页面的功能。

再见。

威尔克

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10549666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档