如何在角度 JS 中保持会话活动

How to keep session alive in angular JS

本文关键字:会话 活动 JS      更新时间:2023-09-26

我正在开发Web应用程序,其中我们将angularJS作为UI,Java作为后端。我们已将 tomcat 服务器会话超时配置为 20 分钟。AngularJS负责获取和保存数据。当数据量很大时,有时需要 20 多分钟来处理请求,这符合我们的业务需求。

如果任何 ajax 请求花费超过 20 分钟,我们将面临问题。每当任何操作超过 20 分钟时,会话就会超时,但 angularJS 仍然等待返回数据。对服务器的 AJAX 请求无法保持会话活动状态。我们通过在浏览器中打开一个新选项卡来检查它,它要求登录,第一个选项卡等待返回数据。

有没有办法使会话保持活动状态,直到服务器处理请求。

下面是我向服务器发出请求的angularJS代码。乙

return $http({
            method: method,
            url: url,
            async:true,
            data: $.param(data),
            headers: {
                'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
                'X-Requested-With':'XMLHttpRequest'
            }
        }).then(function(response){
           if(response.status ===200){
                // do  some work
           }               else{
               failureCallBack(response.data, response.status, response);
           }
        });

您可以配置角度超时:

从$http文档:超时 – {数字|承诺} – 以毫秒为单位的超时,或承诺,在解决时应中止请求。

使用角度保持活动

状态
$scope.$on('Keepalive', function() {
    // do something to keep the user's session alive});