http - with - react fetch




Fetch-API: Autorisierung auf Anfrage-Header kann nicht mit Chrome hinzugefügt werden (2)

Chrome-Version : 57.0.2987

Eigentlich habe ich dieses Problem auch in älteren Chrome-Versionen. Ich habe Authorization on Request Header mit meinem Zugriffs-Token hinzugefügt,

fetch('https://example.com/endpoint', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer ' + accesstoken
  }  
})

Ich bekomme immer Access-Control-Allow-Headers:authorization auf Response-Header in Chrome Außerdem ist Mein Abruf immer Request-Methode: OPTIONS (GET nicht anzeigen), dann Statuscode ist 200 OK in Chrome

Aber wenn ich denselben Code in Firefox (ver 52.0.1) ausführen, funktioniert alles super. Ich kann Authorization auf Antragskopf korrekt hinzufügen. Access-Control-Allow-Headers:authorization werden nicht angezeigt Access-Control-Allow-Headers:authorization für Response Header in Firefox. Es wird Authorization: Bearer accesstoken on Request-Header Authorization: Bearer accesstoken .

Die Serverseite hat bereits CORS für meine Anfrage header verarbeitet.

Dies ist ein Chrome-Bug oder mein Code-Fehler? Wie kann ich die Authorization auf Anfrage-Header in Chrome korrekt vornehmen?

Das folgende Bild zeigt das Detail- Netzwerk im Chrome- Entwicklungstool:

Das folgende Bild zeigt das Detail- Netzwerk im Firefox- Entwicklungstool:



Wie @stackdave sagte, sendet der Browser die OPTIONS-Anfrage vor der GET-Anfrage, wenn domainübergreifender Ajax. Dann wartet der Browser auf die Serverantwort. Meine Situation, dass der Server nicht reagiert hat, so dass der Browser den OPTIONS-Status beendet. Server muss mit diesem Problem umgehen, es ist immer noch CORS-Problem, nicht API-Fehler oder Problem zu holen.





preflight