响应头在$ httpProvider.interceptors中为null angularjs

时间:2017-05-26 11:14:54

标签: angularjs ionic-framework response angular-http-interceptors response-headers

我添加errorHandlerInterceptor来处理错误,如下所示:

(function() {
    'use strict';

    angular
        .module('rasool')
        .config(httpConfig);

    function httpConfig($httpProvider) {

        $httpProvider.interceptors.push('errorHandlerInterceptor');
    }
})();

并且在errorHandlerInterceptor我希望从响应标头中获取特定标头,如下所示:

(function() {
    'use strict';

    angular
        .module('rasool')
        .factory('errorHandlerInterceptor', errorHandlerInterceptor);

    function errorHandlerInterceptor ($q, toaster, $rootScope, $timeout) {
        var service = {
            responseError: responseError
        };

        return service;

        function responseError (response) {

            var errorHeader = response.headers('X-app-alert');

            if(errorHeader) {
                // do something
            }

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

问题是errorHeader为空,但是当我使用Chrome DevTools检查响应标头时,此标头存在且具有一个值,如下面的屏幕截图所示:

enter image description here

更新

所有这些部分都在网站上正常运行,但我创建了一个html,js和css文件的副本来创建一个ionic1应用程序,但是当我运行ionic serve命令来测试应用程序时,我有这个问题

1 个答案:

答案 0 :(得分:0)

您是否尝试过这样称呼它:

var errorHeader = response.headers();

并且在errorHeader之后应该是一个拥有所需数据的对象。