Web-Api-2-Preflight-CORS Anfrage für Bearer-Token

Ich habe eine web-app mit AngularJS Frontend-und Web-Api-2-back-end, und es verwendet bearer-Token für die Authentifizierung.

Alles ist gut in FireFox & IE, aber bei Chrome, meine erste Anmeldung ist MANCHMAL pre-flighted.

Hier ist der Anruf von der AngularJS-service:

$http.post (http://localhost:55483/token - , Daten -, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }).Erfolg(function (response) { ... });

Den preflight-Anfrage gekickt wird wieder mit einer "Allow-Access-Control-Origin" - Fehler.

Jedoch, wenn ich auf die Login-Taste (dadurch wird das erneute senden der obigen Anfrage) ist alles gut.

Irgendeine Idee, wie man verhindern/auffangen/umgehen?

PS: ich benutze die LOC

context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" });

in der ApplicationOAuthProvider.cs Datei zu setzen, die CORS-allow-header, auf den /Token anfordern, das funktioniert in IE, FireFox und manchmal Chrome.

  • Hast du add allowcors im Autostart für webapi?
  • Meinst du diese LOC: app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll); ich versuchte zu setzen, dass in, aber der compiler sagt: Owin.IAppBuilder' enthält keine definition für 'UseCors'
  • Ja, es sieht ähnlich aus, aber Sie müssen möglicherweise auch einige nuget-Paket für cors
  • Hab die Owin.Cors NuGet-Paket Hinzugefügt, in der AllowAll Sache - immer noch dasselbe problem. Dass "AllowAll" scheint nur für die Web-Api-Controller und nicht der /Token-route.
  • Dachte, dies mit Hilfe von post durch LeftyX am Jun 29: Verschieben Sie diese LOC-app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll); die ERSTE ZEILE in der ConfigureAuth Methode von Startup.Auth.cs. Dann, ENTFERNEN Sie diese LOC Kontext.OwinContext.Antwort.Header.Add("Access-Control-Allow-Origin", new[] { "*" }); aus der GrantResourceOwnerCredentials () - Methode der ApplicationOAuthProvide.cs. Preflight-CORS-request bekommt, richtig gehandhabt, und dann die eigentliche requet geht durch.
  • Danke FancyNancy für deinen Kommentar! Können Sie Ihren Kommentar eine Antwort auf diese Frage? Dein Kommentar war die einzige Antwort, die für mich gearbeitet! Ich bin sicher, jemand anderes würde schätzen eine Antwort angegeben.

InformationsquelleAutor FancyNancy | 2014-11-17
Schreibe einen Kommentar