AngularJS: Refusé de jeu dangereux d'en-tête “Access-Control-Request-Headers”
Je suis en train d'appeler une API REST exécutant localement à l'aide d'AngularJS. Voici le code AngularJS :
$http.defaults.headers.common = {"Access-Control-Request-Headers": "accept, origin, authorization"};
$http.defaults.headers.common['Authorization'] = 'Basic amF5M2RlYzpqYXk=';
$http({method: 'GET', url: 'http://127.0.0.1:5000/user/jay3dec'}).
success(function(data, status, headers, config) {
}).
error(function(data, status, headers, config) {
alert(data);
});
Mais j'obtiens une erreurs dans le navigateur de la console :
Refused to set unsafe header "Access-Control-Request-Headers"
J'ai essayé de la requête d'appel de l'API REST de course à http://127.0.0.1:5000/user/jay3dec à l'aide de CURL.
curl -H "Origin: http://127.0.0.1:8000" -H "Authorization: Basic amF5M2RlYzpqYXk=" http://127.0.0.1:5000/user/jay3dec --verbose
Et il a donné le résultat suivant :
> GET /user/jay3dec HTTP/1.1
> User-Agent: curl/7.35.0
> Host: 127.0.0.1:5000
> Accept: */*
> Origin: http://127.0.0.1:8000
> Authorization: Basic amF5M2RlYzpqYXk=
>
* HTTP 1.0, assume close after body
< HTTP/1.0 200 OK
< Content-Type: application/json
< Content-Length: 454
< ETag: bff7b7db33baedb612276861e84faa8f7988efb1
< Last-Modified: Tue, 30 Dec 2014 14:32:31 GMT
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Headers: Authorization
< Access-Control-Allow-Methods: HEAD, OPTIONS, GET
< Access-Control-Allow-Max-Age: 21600
< Server: Eve/0.4 Werkzeug/0.9.6 Python/2.7.6
< Date: Sun, 25 Jan 2015 20:00:29 GMT
<
* Closing connection 0
{"username": "jay3dec", "_updated": "Tue, 30 Dec 2014 14:32:31 GMT", "password": "jay", "firstname": "jay", "lastname": "raj", "phone": "9895590754", "_links": {"self": {"href": "/user/54a2b77f691d721ee170579d", "title": "User"}, "parent": {"href": "", "title": "home"}, "collection": {"href": "/user", "title": "user"}}, "_created": "Tue, 30 Dec 2014 14:32:31 GMT", "_id": "54a2b77f691d721ee170579d", "_etag": "bff7b7db33baedb612276861e84faa8f7988efb1"}
Peut-on repérer ce que peut être le problème ??
OriginalL'auteur iJade | 2015-01-25
Vous devez vous connecter pour publier un commentaire.
Le code derrière
$http.defaults.headers.common
estSe référant à XMLHttpRequest spécification , le navigateur sera résiliée si l'en-tête est un casse match pour l'un de les en-têtes suivants
C'est pourquoi vous ne pouvez pas utiliser
$http.defaults.headers.common
pour définirAccess-Control-Request-Headers
en-tête. Navigateur va gérer les en-têtes de demande pour vous au lieu.OriginalL'auteur Rebornix
Le problème est dans De la SCRO
Vous devriez faire de configurer votre serveur de côté afin de permettre à l'Autorisation d'en-tête. Je ne sais pas ce que vous êtes utilisé pour le serveur, mais pour ma asp.net web api 2 serveur ressembler à:
Web.config
OriginalL'auteur CrueLHamsteR
Pour des raisons de sécurité, les navigateurs ne permettent pas la tête a défini quelques risques de sécurité, comme cookie, hôte, referer, etc. Donc, ne pas utiliser le navigateur à analyser la ligne de tête. Il peut être utilisé sur le côté serveur ensemble de l'agence envoyé.
Référence: Origine de la croix de partage de ressources
OriginalL'auteur Jack Chen