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

时间:2016-03-04 00:26:55

标签: javascript angularjs ajax session

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

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

在服务器处理请求之前,有没有办法让会话保持活动状态。

下面是我向server.B提出请求的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);
           }
        });

2 个答案:

答案 0 :(得分:0)

您可以配置角度超时:

  

来自$ http docs:timeout - {number | Promise} - 超时(以毫秒为单位),或承诺在解决时应中止请求。

答案 1 :(得分:0)

使用角度保持活力

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