WEBAPI bietet Endpunkt für die Authentifizierungsanfrage: http: \ ... \ token
Die Authentifizierungsanfrage sollte mit der Methode "POST" und Body wie
gesendet werden %Vor%Diese WebAPI wird von Front-End verwendet, die mit AngularJS geschrieben wurde. Manchmal wird vor dem Senden einer "POST" -Anfrage mit einem gültigen Body eine "OPTIONS" -Anfrage ohne Body gesendet. Als Ergebnis wird der folgende Fehler von WebAPI zurückgegeben:
%Vor%Gibt es eine Lösung, die serverseitig implementiert werden kann? (in WebAPI)
HTTP-Anforderungsmethode: OPTIONEN
%Vor%Ich bin gerade in das gleiche Problem gerannt..Ich benutze ember und ember-simple-auth. Alle Preflight-Anfragen OPTIONS an den / token-Endpunkt führten zu einer 400-HTTP-Antwort und der Body hatte die bekannte Form: {error: "unsupted_grant_type"}.
LÖSUNG:
Ich erben von: OAuthAuthorizationServerProvider und überschreiben die MatchEndpoint-Funktion:
%Vor%Das scheint sich darum zu kümmern. Hoffe es hilft.
Ich habe den gleichen Fehler bekommen, als ich vergessen habe, Content-Type: application/x-www-form-urlencoded
zum Anfrage-Header hinzuzufügen.
In diesem Fall ist OPTIONS
eine CORS-Preflight-Anfrage. Es wird gesendet, um festzustellen, ob die tatsächliche Anfrage ( POST
) sicher gesendet werden kann. Cross-Site-Anfragen werden Preflight, wenn andere Methoden als GET
, HEAD
oder POST
oder benutzerdefinierte Header verwendet.
Um eine 400 HTTP-Antwort zu vermeiden, sollten Sie in Ihrer Startup-Klasse CORS für die OWIN-Middleware mit der Erweiterungsmethode UseCors
aktivieren und Ihre benutzerdefinierte System.Web.Cors.CorsPolicy
definieren.
Ich habe versucht, meine API mit Fiddler zu testen, und habe die Daten nicht im richtigen Format im Abschnitt "Request Body" bereitgestellt. Stellen Sie sicher, dass es als Schlüsselwertliste hinzugefügt wurde, getrennt durch '& amp;'.
%Vor%Tags und Links oauth authentication options