【发布时间】:2016-06-21 17:00:42
【问题描述】:
我遇到了这个问题中描述的相同问题:Angularjs set a authorization header
我需要在我的请求标头中包含一个授权令牌。我已经尝试过使用几种方法 - 我尝试设置 $http 默认值如下:
app.config(function($httpProvider) {
$httpProvider.defaults.headers.common['Authorization'] = '1234567';
});
还有这样的:
app.run(function($http) {
$http.defaults.headers.common['Authorization'] = '1234567';
});
此外,我尝试在我的服务上的一个方法中像这样构造我的请求:
var request = {
method: 'GET',
url: 'my/api/endpoint',
headers: {
'Authorization': '1234567'
}
};
$http(request).then(function(response) {
console.log(response);
});
在所有这些情况下,我最终在请求标头中看到的内容如下所示:
Access-Control-Request-Method: GET
Origin: http://localhost:8000
Access-Control-Request-Headers: accept, authorization
Accept: */*
Referer: http://localhost:8000/
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8
我希望在其中看到另一个键值对,例如:
Authorization: '1234567'
但是,我没有。
我使用的是 Angular 1.4.9 版,不知道这个问题是不是这个版本特有的?
已解决: 事实证明,这已在 Apache 配置服务器端解决。但是 - 值得注意的是,授权标头实际上包含在 preflight 请求标头中,而不是主请求中,这就是它似乎不在标头中的原因。
【问题讨论】:
标签: javascript angularjs ajax cors