Genau wie im Hintergrund, ich habe eine Reaktion App auf einer Remote-EC2 Ubuntu-Instanz sitzen. Auf demselben Server wird auch eine Go-App ausgeführt, die Port 8080 überwacht (der Port wurde von den Sicherheitseinstellungen für jeden geöffnet).Fetch-API funktioniert nicht mit localhost/127.0.0.1
Ich versuche, einen Antrag zu stellen mit API holen, aus der App Reaktion, wie folgt:
var bearer = 'Bearer ...'
return fetch('http://localhost:8080/home', {
headers: new Headers({
'Authorization': bearer
})
})
in der Konsole aus sowohl Chrome und Firefox, erhalte ich:
Typeerror : NetworkError beim Versuch, Ressource abzurufen
Das gleiche gilt, wenn ich localhost
durch 127.0.0.1
ersetzen.
Die Verwendung der externen IP der EC2-Instanz funktioniert jedoch (und löst eine CORS-Anforderung aus - aufgrund des Headers 'Authorization' - der vom Server problemlos verarbeitet wird).
Im letzteren Fall kann ich auch sehen, dass der Server die eingehende Anfrage sowohl für OPTIONS als auch für GET protokolliert (im ersten Fall sind keine Protokolle für beide Methoden vorhanden).
Ich versuchte auch CURL'ing von der EC2-Maschine zu localhost
und die Anfrage geht effektiv durch, die mich zu der Annahme führt, dass mit der Fetch-API die Anfrage überhaupt nicht ausgelöst wird.
Jeder Rat würde geschätzt werden. Wenn ich etwas falsch mache, zeige mir bitte in die richtige Richtung.
Welche URL verwenden Sie in Ihrem Browser, um die Seite zu öffnen (die tatsächliche Abrufanforderung)? – Dekel
Ich verwende die externe IP-Adresse der EC2-Instanz (Port 80), die gleiche IP-Adresse, an die die erfolgreiche Abrufanforderung gerichtet ist. – Andy