CORS error - No 'Access-Control-Allow-Origin' - header vorhanden ist, auf die angeforderte Ressource
Bin ich mit einer Kantigen front-end-Verbindung zu einer WEB-API-2-backend. Die fehlerhafte Verwendung Fall ist der folgende. Wenn sich ein Benutzer anmeldet, auf erfolgreiche Anmeldung, müssen Sie im system angemeldet sein und werden weitergeleitet auf eine neue Seite zu sammeln weitere Informationen. Ich bin mit TOKEN für die Authentifizierung.
Habe ich aktiviert CORS in der WebAPI config:
var cors = new EnableCorsAttribute("http://localhost:7812", "*", "*");
config.EnableCors(cors);
Die Anmeldung erfolgreich ist, und die Antwort-Header die benötigten CORS-Header:
**Access-Control-Allow-Credentials:true
Access-Control-Allow-Origin:http://localhost:7812**
Content-Length:0
Date:Sun, 24 Aug 2014 09:31:55 GMT
Server:Microsoft-IIS/8.0
X-Powered-By:ASP.NET
X-SourceFiles:=?UTF-8?B?QzpcUHJvamVjdHNcVGVzdGluZ1xNYWx0QXBhcnRtZW50c1xNYWx0YXBhcnRtZW50cy5BUElcTWFsdGFwYXJ0bWVudHMuQVBJXGFwaVxhY2NvdW50XHJlZ2lzdGVy?=
Im nächsten Schritt versuche ich das anmelden des Benutzers im system. Als Teil der Anmeldung, der front-end-Anfragen ein TOKEN vom server Request URL:http://localhost:7802/token
. Der request-header, noch einmal sendet ein Origin-header Origin:http://localhost:7812
aber dieses mal bekomme ich die Fehlermeldung : XMLHttpRequest cannot load http://localhost:7802/token. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:7812' is therefore not allowed access.
Jemand irgendwelche Ideen?
- überprüfen Sie in diesem stackoverflow.com/questions/23642293/...
- Hallo Mohammed - ich habe versucht, alle diese Schritte - ohne Erfolg.
- Mit genau diesem Problem...jemals eine Lösung finden?
- Ich habe das gleiche problem @Greg. Hast du eine Lösung gefunden werden?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beim Umgang mit CORS, wir müssen im Hinterkopf behalten, dass es möglicherweise zwei Anfragen vom Web-Browser nicht GET-Anforderung. Es ist in der Regel der preflight (OPTIONEN) verlangen und dann die eigentliche Anfrage (POST). Während der preflight-Anfragen muss der server hinzufügen, die Access-Control-Allow-Origin " - header mit dem Wert der passenden Antrag Herkunft header. Dieser ermächtigt den nachfolgenden Anforderung, um gesendet zu werden.
Für die spätere/aktuelle Anfrage, der server muss auch hinzufügen das Access-Control-Allow-Origin " header. Ansonsten, diese Anforderung schlägt fehl.
Bei der Verwendung der OWIN OAuthAuthorizationServerProvider, wir müssen uns anpassen, die MatchEndpoint handler zur Verwaltung der header-Logik. Diese Prozedur wird ausgeführt, bevor Validierung der client-Authentifizierung.
Weitere hintergrund-Informationen finden Sie unter diesem link: http://www.ozkary.com/2016/04/web-api-owin-cors-handling-no-access.html
Es ist, weil der Preflight requests.
Lesen Sie diese Artikel für Lösungen:
Ich glaube du hast zwei Probleme :
1 - Mit Web API 2 sind, müssen Sie die header manuell, wenn Sie grant the bearer-token.
2 - Ihre Daten müssen url-codiert sein, so müssen Sie zum abfangen des $http-post-Nachricht um die Daten zu Kodieren.
finden Sie meine Artikel, die ich verwenden Web-API-2-aus einer AngularJS client-Seite.
http://www.codeproject.com/Articles/742532/Using-Web-API-Individual-User-Account-plus-CORS-En
Hoffe, das hilft.
Verwenden Sie diese Zeile in web.config :
Seine behebt mein problem, kann es auch Ihnen helfen.