我有骨干应用程序,如果用户丢失会话,我需要注意。当会话丢失时,服务器发送302(重定向到登录页面)。这在某些情况下有效,而在其他情况下却没有。
我发出了一个ajax请求,在确认会话的时间间隔内ping服务器。我已经阅读了有关SO的许多主题,例如one
并且它说,浏览器处理302。
我在这里很困惑。 这是我用来ping服务器的简单Ajax请求:
setInterval(function () {
if(baseHref){
$.ajax({
type: 'GET',
url: baseHref + "api/ping",
success: function (data) {
if(data !== true){
window.location.href = baseHref + "login";
}
},
error: function (data) {
}
});
}
},5000);
在本地环境中,当会话丢失时,服务器发送302并且每次都成功结束,我可以根据它做出决定。 在开发环境(https://xxxxxx.com)中,我永远不会在任何承诺中结束,浏览器会覆盖它们。
一个解决方案是与服务器人交谈并让他们发送给我对象,而不是302.但在我提出要求之前,我想知道:
为什么它在localhost中有效?无论如何都不应该。