AngularJs AJAX错误

时间:2015-05-04 16:42:31

标签: angularjs angularjs-http

在典型的AJAX调用中,使错误处理更有意义的方法是什么 如下的模板代码无助于传达任何内容 我们如何更好地破译例外?

<script>
var nameapp=angular.module('countryListApp',[]);
nameapp.controller('CountryListCtrl',function($scope,$http){
     var responsePromise = $http.get("/catalog/countries.json");
     responsePromise.success(function(data, status, headers, config){$scope.countries=data; });
     responsePromise.error(function(data, status, headers, config) {
        console.log("AJAX has failed"); 
    }); 

});

1 个答案:

答案 0 :(得分:0)

我为此使用$httpProvider.interceptors,在您的配置中,您可以设置全局错误处理。对于我的大部分内容MyHttpErrorHandler都会导致祝酒。

app.config(['$httpProvider', function($httpProvider )
{
    $httpProvider.interceptors.push(function($q) {
      return {


        // optional method
        'response': function(response) {
          return response;
        },

        // optional method
       'responseError': function(rejection) {

            // window.informUser('Error '+rejection.status +': ' +rejection.config.url);
            if(rejection.status === 0)
            {

                if(window.isInWrapper)
                {
                    //Logout if in an app;
                    window.location.href='ios:logout';
                }
                else
                {
                    window.location.reload();
                }                   
            }


          return $q.reject(rejection);
        }
      };
    });

}])