2015-09-11 31 views
1

这是我在Angular中处理我的路由的方式。我有几个文件,其中存储了有关每条路径的所有必需数据,并且像这样遍历数据。 .html请求用于为AJAX请求加载模板和.action。访问标题数据并处理Angular http请求中的错误代码

我需要做的是对待所有服务器不成功的情况(300,400,500等)。我搜索了所有我认为相关的信息,发现了一些关于它的信息,但没有任何相关或足够清楚。我如何访问请求的标题数据?

Application.config(['$routeProvider', '$interpolateProvider', '$httpProvider', 

    function($routeProvider, $interpolateProvider, $httpProvider) 
    { 

     $interpolateProvider.startSymbol('<%'); 
     $interpolateProvider.endSymbol('%>'); 

     for (var i=0; i < applicationRoutes.length; i++) { 

      if (applicationRoutes[i].hasInitialData) 
      { 
       $routeProvider.when('/' + applicationRoutes[i].path + '.html', { 

        templateUrl: applicationRoutes[i].path + '.html', 
        controller: applicationRoutes[i].controller + ' as ' + applicationRoutes[i].controllerAlias, 
        resolve: { 
         initData : ['Initialize', '$route', function(Initialize, $route) 
         { 
          //console.log($route.current.$$route); 
          return Initialize.serverData('/' + $route.current.$$route.pathBase); 
         }] 
        }, 
        pathBase: applicationRoutes[i].path 

       }).otherwise('/404'); 
      } 
      else 
      { 
       $routeProvider.when('/' + applicationRoutes[i].path + '.html', { 

        templateUrl: applicationRoutes[i].path + '.html', 
        controller: applicationRoutes[i].controller + ' as ' + applicationRoutes[i].controllerAlias, 
        pathBase: applicationRoutes[i].path 

       }).otherwise('/404'); 

      } 

     } 

     $httpProvider.defaults.headers.common["X-Requested-With"] = 'XMLHttpRequest'; 

    } 

]); 

回答

3

我不能看到你的服务器调用,但假设你已经推出了一个服务来调用端点与$ HTTP记住,你可以使用故障处理程序的承诺,以便

$http(req).then(function(){...}, function(){...}); 
的第二个参数

这意味着你可以做到这一点

$http(req).then(function(someData){/*This is the success*/},function(reason){/*the reason holds the reason it faild, reason.data etc */}); 
+0

你corrrect,但是我需要什么,在当时是访问由路由处理的请求头的方式。我从那时开始设法处理http的问题 –

+0

您也可以使用'.catch(errorHandler)'代替'.then()'中的第二个回调函数。 – ste2425