为了发送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配置中使用参数转换请求。见doc:
transformRequest –
{function(data,headersGetter)|Array.<function(data, headersGetter)>}
转换函数或此类函数的数组。转换函数采用http请求正文和标头,并返回其转换后的(通常是序列化的)版本。
这样,您可以在发送单个请求之前将其删除:
$http({method: 'GET',
url: '/someUrl',
transformRequest: function(data,headersGetter){ //Headers change here }
}).success();
问题内容: 我正在尝试向每个API调用添加带有访问令牌的标头。它适用于所有GET请求,但是一旦我尝试进行POST,便不会添加标头。 这是我添加令牌的方法: 从这里调用: 我尝试这样做如下: 但这也不起作用。它仅在我如下更改标题键名称时才有效: 如何在AngularJs中为帖子分配默认标题并获取请求? 问题答案: 与其将令牌放在每个服务(或调用)内部的标头上,不如使用拦截器(docs在此处)。 然后
我刚刚注意到,在以前的HTTP请求选项中可能使用的Header Object在新的Interceptor中不再支持。 这是新的拦截器逻辑: 现在,我有两种方法可以在这个请求中添加标题: 例子: 如何在此请求上有条件地添加多个标头?与我以前处理Header对象的方法相同:
问题内容: 我想在使用Spring的请求中设置的值。 这是我的Spring请求处理代码 这是我的Java REST客户端: 这对我有用;我从服务器端获取了JSON字符串。 我的问题是:当我使用RestTemplate时,如何指定标头(例如)和请求方法(例如,…)? 问题答案: 我建议使用可以接受的方法之一,也可以为其设置。(你也可以指定要使用的HTTP方法。) 例如, 我喜欢这种解决方案,因为它是
我的问题是:在使用RESTTemplate时,如何指定头(例如、,...)和请求方法(例如、,...)?
问题内容: 我的应用程序中有一个需要基本身份验证的特定请求,因此我需要为该请求设置Authorization标头。我读过有关设置HTTP请求标头的信息,但据我所知,它将为该方法的所有请求设置标头。我的代码中有这样的内容: 但我不希望我的每一个帖子请求都发送此标头。有什么方法可以仅为我想要的一个请求发送标头吗?还是我必须在请求后将其删除? 问题答案: 传递给每次调用标头的config对象中有一个标头
问题内容: 在使用XMLHttpRequest进行AJAX调用时,似乎无法从JavaScript更改大多数请求标头。请注意,必须在Gecko浏览器中调用when。设置_Referer时_ ,它没有设置(我查看了使用Firebug和Tamper Data发送的请求标头)。当我设置User-Agent时,它完全搞砸了AJAX调用。但是,设置接受和_内容类型_确实可以。我们是否无法在Firefox 3中