Angularjs设置了授权标头
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Angularjs设置了授权标头相关的知识,希望对你有一定的参考价值。
我试图在我的请求中放置一个授权标题,但它不起作用。
我用这个:
var config = {headers: {
'Authorization': token
}
};
return $http.get('http://localhost:3000/apis/users/all', config);
我也试过这个:
$http.defaults.headers.common['Authorization'] = token;
但在这两种情况下,我在后端请求中得到了这个标题:
Accept:*/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:es-ES,es;q=0.8,ca;q=0.6,en;q=0.4,gl;q=0.2
Access-Control-Request-Headers:accept, authorization
Access-Control-Request-Method:GET
Connection:keep-alive
Host:localhost:3000
Origin:http://localhost:8000
Referer:http://localhost:8000/
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/45.0.2454.85 Safari/537.36
我需要这样的东西:
Authorization: token
但我得到了这个:
Access-Control-Request-Headers:accept, authorization
然后,我没有任何地方的令牌值。
我使用expressjs作为后端,我将它用于CORS:
app.use(function(req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept, Authorization');
next();
});
还说使用chrome扩展Advance Rest Client进行测试它工作正常。在请求标头中有一个Authorization:valueOfToken ..
非常感谢。
答案
授权不可能是明确的。
将天气指定为Basic
或Bearer
授权
就像是
$http.defaults.headers.common['Authorization'] = 'Basic ' + token;
要么
$http.defaults.headers.common['Authorization'] = 'Bearer ' + token;
另一答案
我遇到了同样的问题,事实证明这个问题与服务器端的Apache配置有关。我发现这里可能对您有用的一件事是我的授权令牌是在预检请求标头而不是主请求中发送的,因此当您在请求中查看时,它可能看起来不在请求的标头中。开发者工具。
我正在设置我的默认值:
app.config(function($httpProvider) {
$httpProvider.defaults.common['Authorization'] = token;
// For angular 1.5, use:
// $httpProvider.defaults.headers.common['Authorization'] = token;
});
另一答案
试试这个:
$http({
url : "127.0.0.1/login",
method : 'GET',
headers : {
Content-Type : 'application/json',
Authorization: token
}
}).success(function(data){
alert("login Successfully");
}).error(function(error){
alert("login error");
})
以上是关于Angularjs设置了授权标头的主要内容,如果未能解决你的问题,请参考以下文章