使用ui-router重定向到另一个状态后,旧请求的成功/失败仍然会启动

时间:2014-11-13 13:49:07

标签: javascript angularjs redirect angular-ui-router

我使用带有ui-router的angular创建了网页。一般来说效果很好,我只有一个问题。

我有一个视图,可以对不同的Web服务器进行大量单独调用。如果这些Web服务器中的任何一个返回401,我想将用户重定向到登录页面。所有服务器都有SSO,因此用户只需登录一次。

这些请求的示例代码如下:

request.success(function(data) {
        //Do something
}).error(function(data, status, headers, config) {
        errorService.basicErrorHandler(request.url, data, status, headers, config);
});

和basicErrorHandler执行此操作(仅限相关部分):

if (status === 401 || status === 403) {
    $location.path('/login');
}

现在有时会发生什么:

  • 用户通过/ secured-page
  • 中的一个请求重定向到/ login
  • 用户决定不登录,并转到不需要身份验证的页面的某些部分,例如/ landing-page
  • / secured-page发出的请求之一现在回来了,因为其中一个服务器在提供结果方面非常慢。它也获得401,因此用户再次被重定向到/登录页面

在上述情况下的ng-router中,在已经进行重定向之后,在/ secured-page中启动的请求不会再次重定向用户。如何在ui-router中避免这种行为?

0 个答案:

没有答案