AngularJS: Weigerte sich, unsicher-header "Access-Control-Request-Headers"
Ich versuche zu rufen, eine REST-API läuft lokal mit AngularJS. Hier ist der AngularJS-code :
$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);
});
Aber ich bin immer ein Fehler in der browser-Konsole :
Refused to set unsafe header "Access-Control-Request-Headers"
Ich versuchte Abfrage aufrufen der REST-API ausführen zu http://127.0.0.1:5000/user/jay3dec mit CURL.
curl -H "Origin: http://127.0.0.1:8000" -H "Authorization: Basic amF5M2RlYzpqYXk=" http://127.0.0.1:5000/user/jay3dec --verbose
Gab es die folgende Ausgabe :
> 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"}
Kann einem Fleck, was kann das Problem sein ??
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den code hinter
$http.defaults.headers.common
istBezogen auf XMLHttpRequest-Spezifikation , browser wird beendet, wenn-header ist ein groß-und Kleinschreibung für eine der folgenden überschriften
Das ist, warum Sie nicht verwenden können
$http.defaults.headers.common
zu setzenAccess-Control-Request-Headers
header. Browser ist, Anforderungsheader verarbeiten für Sie statt.Das problem ist in CORS
Sollten Sie konfigurieren Ihre server-Seite ermöglichen die Autorisierung im header. Ich weiß nicht, was Sie verwendet werden, für server, aber für meine asp.net web-api-2-server es so Aussehen:
Web.config
Aus Gründen der Sicherheit, Browser nicht erlauben, den Kopf gesetzt hat, einige Sicherheitsrisiken, wie cookie, host, referer, etc. So, verwenden Sie nicht den browser zu analysieren, die Linie Kopf. Es kann verwendet werden, auf der server-Seite der Agentur geschickt.
Referenz: Cross-origin resource sharing