我正在开发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);
}
});
答案 0 :(得分:0)
您可以配置角度超时:
来自$ http docs:timeout - {number | Promise} - 超时(以毫秒为单位),或承诺在解决时应中止请求。
答案 1 :(得分:0)
使用角度保持活力
$scope.$on('Keepalive', function() {
// do something to keep the user's session alive});