为了发送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();