【问题标题】:How to keep session alive in angular JS如何在 Angular JS 中保持会话活跃
【发布时间】:2017-09-13 17:32:48
【问题描述】:

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

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

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

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

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);
           }
        });

【问题讨论】:

    标签: javascript angularjs ajax session


    【解决方案1】:

    您可以配置角度超时:

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

    【讨论】:

      【解决方案2】:

      使用角度保持活动

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-04-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-05
        相关资源
        最近更新 更多