ng-view更改时获取标头

时间:2017-03-02 16:06:01

标签: angularjs http-headers ng-view

我们所有的内容网页都有一个特定的标题X-Foo。当ng-view的内容发生更改时,我们希望在不同的元素中显示新页面的X-Foo标头。每当内容发生变化时,我们如何获得此值?

编辑:由于显然不清楚,标题是响应,而不是请求。

2 个答案:

答案 0 :(得分:4)

您可以使用httpInterceptor。 HTTP拦截器是在一个地方定义行为的好方法,用于使用$ http服务为所有HTTP调用处理请求或响应

app.config(function ($httpProvider) {
    $httpProvider.interceptors.push('httpInterceptor');
}).factory('httpInterceptor', function (liveInterviewConfiguration) {
    return {
        request : function (request) {
            console.info("Your request headers are");
            console.info(request.headers);
            return request;
        },
        requestError : function (error) {
            return error;
        },
        response : function (response) {
            return response;
        },
        responseError : function (error) {
            return error;
        }
    };
});

答案 1 :(得分:0)

你能用$ http访问控制器中的标题吗?我没有任何改变标题随时可用来测试它。

controller('SampleCtrl', function($http, $scope) {
    // Add headers from $http
    $scope.http = $http.defaults.headers.common;
});

或者,如果这不起作用,您可能需要查看使用http interceptors

.config(function($routeProvider, $locationProvider, $httpProvider) {

    $httpProvider.interceptors.push(function($q) {
        return {
            'response': function(response) {
                // do something on success
                console.log(response);
                return response;
            }
        };
    });
}