J'essaie de mettre un en-tête d'autorisation dans mes demandes mais cela ne fonctionne pas.
J'utilise ceci:
var config = {headers: {
'Authorization': token
}
};
return $http.get('http://localhost:3000/apis/users/all', config);
Et j'ai aussi essayé ceci:
$http.defaults.headers.common['Authorization'] = token;
Mais avec les deux cas, j'ai obtenu ces en-têtes dans la demande principale:
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
J'ai besoin de quelque chose comme ça:
Authorization: token
Mais j'ai compris ceci:
Access-Control-Request-Headers:accept, authorization
Ensuite, je n'ai nulle part la valeur du jeton.
J'utilise expressjs pour le back-end et j'utilise ceci pour 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();
});
Dire également que le test avec l'extension chrome Advance Rest Client fonctionne correctement. Dans l'en-tête de la demande, il y a une autorisation: valueOfToken ..
Merci beaucoup.
L'autorisation ne peut pas être simple.
spécifier la météo c'est une Basic
ou Bearer
Autorisation
Quelque chose comme
$http.defaults.headers.common['Authorization'] = 'Basic ' + token;
ou
$http.defaults.headers.common['Authorization'] = 'Bearer ' + token;
J'avais ce même problème et il s'est avéré que le problème était lié à la configuration d'Apache côté serveur. Une chose que j'ai trouvée qui pourrait vous être utile ici est que mon jeton d'autorisation est envoyé dans les en-têtes de demande preflight plutôt que dans la demande principale, il peut donc ne pas apparaître dans les en-têtes de la demande quand vous le regardez dans les outils de développement.
Je mets mes valeurs par défaut comme ceci:
app.config(function($httpProvider) {
$httpProvider.defaults.common['Authorization'] = token;
// For angular 1.5, use:
// $httpProvider.defaults.headers.common['Authorization'] = token;
});
Essaye ça:
$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");
})