在AngularJS上设置默认标头,但不要在一个特定请求上使用它

前端之家收集整理的这篇文章主要介绍了在AngularJS上设置默认标头,但不要在一个特定请求上使用它前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
为了发送OAuth2令牌,我在AngularJS上设置默认标头,如下所示:
$http.defaults.headers.common['Authorization'] = 'Bearer ' + access_token;

这工作得很好但我不需要这个标题(我得到一个错误)一个特定的请求。

有没有办法在执行该请求时排除默认标头?

谢谢!

解决

感谢Riron让我走上了正确的道路。这是答案:

$http({
    method: 'GET',url: 'http://.../',transformRequest: function(data,headersGetter) {
        var headers = headersGetter();

        delete headers['Authorization'];

        return headers;
    }
});
使用$ http拨打电话时,您可以直接在请求配置中提供默认值标头:
$http({method: 'GET',url: '/someUrl',headers: {'Authorization' : 'NewValue'} }).success();

否则,您可以使用transformRequest参数转换您的请求,仍然在$ http配置中。见文档:

transformRequest – {function(data,headersGetter)|Array.<function(data,headersGetter)>} – transform
function or an array of such functions. The transform function takes
the http request body and headers and returns its transformed
(typically serialized) version.

这样,您可以在发送之前删除单个请求的标头:

$http({method: 'GET',headersGetter){ //Headers change here } 
}).success();

猜你在找的Angularjs相关文章