2016-11-21 4 views
2

Wie kann ich der Anforderung OPTIONS, die an eine domänenübergreifende API gestellt wird, Header hinzufügen?Authentifizierung zur OPTIONS-Anforderung hinzufügen

Die API, gegen die ich arbeite, erfordert ein JWT-Token, das als Authorization-Header für alle Anforderungen festgelegt wird.

Wenn ich versuche, auf die API für den Zugriff auf Angular führt zuerst eine OPTIONS Anforderung, die nicht über meine Header schert, dass ich Setup für die „echten“ Anfrage wie folgt aus:

this._headers = new Headers({ 
    'Content-Type': 'application/x-www-form-urlencoded', 
    'Authorization': 'Bearer my-token-here' 
}); 

return this._http 
      .post(AppConfig.apiUrl + 'auth/logout', params, {headers: this._headers}) 
      ... 
      ... 

Wenn kein Token zur Verfügung gestellt gibt die API den HTTP-Status 401 zurück und Angular denkt, dass die Anforderung OPTIONS fehlschlägt.

Antwort

7

Nach dem CORS specification when a preflight request durchgeführt Benutzer Anmeldeinformationen sind ausgeschlossen.

(...) die Methode OPTIONS verwendet und mit den folgenden zusätzlichen Bedingungen:

  • (...)
  • Ausschließen der Autor Anforderungsheader.
  • Benutzeranmeldeinformationen ausschließen.
  • (...)

(Hervorhebung von mir ist)

Vor diesem Hintergrund scheint das Problem auf der API-Seite der Dinge zu sein, die akzeptieren werden soll Anfragen ohne Authentifizierung erforderlich.

Verwandte Themen