如何仅为某些域添加标头到$ http

时间:2014-03-18 20:57:21

标签: angularjs angularjs-http

是否可以仅为指定的域设置标题?

执行此操作的“正常”方式为所有调用添加了标头,甚至是检索HTML模板的调用。

$http.defaults.headers.common['Authorization']='...';

到目前为止,除了使用$ http拦截器之外,我看不到任何其他方式,但如果你能想到一个,我很好奇。

感谢。

1 个答案:

答案 0 :(得分:8)

创建拦截器是我处理这个问题的方法。我不确定另一种方式,所以,这是一个例子。 :)

您可以创建一个使用$httpProvider注册的拦截器。 Angular将传递默认的配置对象进行修改,您可以修改那里的标题。

如果是基于Angular $http doc page的快速示例:

//register interceptor as a service
$provide.factory('myHttpInterceptor', function($q, dependency1, dependency2) {
    return {
        // optional method
        'request': function(config) {
            //Figure out which headers you want and set them just for this request.
            config.headers = {"myHeader":"Special"}

            return config;
        }
    };
});

$httpProvider.interceptors.push('myHttpInterceptor');