angularjs - 重定向到Angularjs中的错误页面

标签 angularjs angularjs-routing

我是 AngularJs 的新手。我有一个单页应用程序,其路由配置有一个 Controller 和一个 View 。 View 被加载到 <ng-view></ng-view>index.html 的元素页。在 Controller 内部,我正在制作 http调用以获取数据并将数据绑定(bind)到 $scope .对于成功场景,这可以正常工作,但如果出现错误,我该如何插入另一个 View ,而不是在 Angular 路径内配置的默认 View 。请告诉我。

最佳答案

要实现处理 ajax 错误的常见场景,您可以实现自定义请求拦截器并根据错误状态将用户重定向到错误页面(或登录页面):

myApp.factory('httpErrorResponseInterceptor', ['$q', '$location',
  function($q, $location) {
    return {
      response: function(responseData) {
        return responseData;
      },
      responseError: function error(response) {
        switch (response.status) {
          case 401:
            $location.path('/login');
            break;
          case 404:
            $location.path('/404');
            break;
          default:
            $location.path('/error');
        }

        return $q.reject(response);
      }
    };
  }
]);

//Http Intercpetor to check auth failures for xhr requests
myApp.config(['$httpProvider',
  function($httpProvider) {
    $httpProvider.interceptors.push('httpErrorResponseInterceptor');
  }
]);

Plunker here

关于angularjs - 重定向到Angularjs中的错误页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24625623/

相关文章:

javascript - 更改 AngularJS 开始和结束标签

javascript - 为什么这个方法文档没有链接到指令文档?

angularjs - ExpressJS/NodeJS 的 https 访问响应不安全

angularjs - Angular ng-repeat 列出对象中属性名称未知的所有项目

javascript - 无法停止 AngularJS 中的路由 Controller 之间的事件传播

javascript - 如何使用 $routeProvider 在 Angular 中更改页面标题

javascript - 更新 Controller 变量并在指令 View 中使用它( Angular 1.5)

javascript - 更改状态时如何保留兄弟用户界面 View ?

javascript - Angular 模块注入(inject)错误

angularjs - Uncaught Error : [$injector:modulerr] in angular js