CORS Anfrage mit Preflight und Redirect: nicht erlaubt. Problemumgehungen?
Ich entwerfe eine API, mit der sich der Benutzer authentifizieren kann (mithilfe von Token) und die Weiterleitungen innerhalb derselben Domäne enthält. Bei einer nicht authentifizierten Anforderung an einen Endpunkt, der 303 zurückgibt, wird
GET /documents/123 --> 303 redirect to `/documents/abc`
GET /documents/abc --> 200
alles funktioniert gut.
Lassen Sie uns eine authentifizierte Anfrage an denselben Endpunkt senden, an dem dasAuthorization
Header wird gesendet. Dies macht die Anfrage zu einempreflighted request und der Browser führt einen Preflight durchOPTIONS
request, d. h.
OPTIONS /documents/123 --> 204 (everything okay, please proceed)
GET /documents/123 --> 303 redirect to `/documents/abc`
n diesem Punkt anstelle vonGET
ting die tatsächliche Ressource bei/documents/abc
, der Browser liefert
XMLHttpRequest cannot load http://localhost:8000/people/username/nschloe.
The request was redirected to 'http://localhost:8000/people/YDHa-B2FhMie',
which is disallowed for cross-origin requests that require preflight.
Dieses Verhalten stimmt mit @ übereDer Standar:
7.1.5 Ursprungsübergreifende Anforderung mit Preflight
Wenn die Antwort einen HTTP-Statuscode hat, der nicht im Bereich 2xx liegt
enden Sie die Netzwerkfehlerschritte a
Dies scheint zu bedeuten, dass mankann nich führt Umleitungen für authentifizierte Ressourcen durch, auch wenn sich die Umleitung in derselben Domäne befindet localhost
).
Kann das wirklich wahr sein? Gibt es eine gemeinsame Problemumgehung?