Swagger-UI - "TypeError: Failed to fetch" auf gültige Antwort
Ich habe gerade nach unten gezogen die neueste Fors aus dem Git-repo (3.0.19) mit: https://github.com/swagger-api/swagger-ui.git und aktualisiert meine API für die neue version.
Lief git describe --tags
zu bestätigen und meine version ist derzeit: v3.0.19-6-gaab1403
Das problem das ich habe ist beschrieben hier, wobei meine Antwort ist ein 403 (ich sehe das im Inspektor auf dem browser) und zwar habe ich eine Antwort für den Fehler 403 bekomme ich noch die TypeError: Failed to fetch
Nachricht.
Hier ist ein Ausschnitt aus meiner definition in Bezug auf die 403 Antwort:
"403": {
"description": "Forbidden",
"headers": {
"Access-Control-Allow-Origin": {
"type": "string"
}
}
},
Ich habe auch bemerkt, dass es berichtet hier aber ich weiß, es ist nicht ein CORS-Problem, da ich getestet habe, die Endpunkte und die MÖGLICHKEITEN der Rückkehr korrigieren, so sind die Endpunkte, wenn der Aufruf mit gültigen Angaben (ich erzwingen, 403).
Kann jemand mich in die richtige Richtung bitte?
Update: ich habe da getestet, auf eine 401-Antwort, mit der gleichen Antwort.
Ist und dass eine 400 arbeitet wie erwartet:
Ja, siehe meine Antwort unten hat es ein update (datiert im Jahr 2017) mit einer Lösung / workaround.
InformationsquelleAutor Hexie | 2017-07-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für alle, die läuft in diesem problem;
Nach einem Tag Fehlersuche und Fors support Jungs zeigen mich in die richtige Richtung, es stellt sich heraus, dass dies derzeit verursacht durch einen Fehler innerhalb der AWS-API-Gateway benutzerdefinierte authorizers.
Sind wir derzeit mit der AWS-API-Gateway für die Verwaltung unserer APIs, dies umfasst das Management alle unsere Berechtigung, über eine eigene Vollmachtgeber. Das Problem ist, dass benutzerdefinierte authorizers derzeit nicht die Unterstützung der Durchreise-Header in der response-und Swagger-UI Bedürfnisse der
Access-Control-Allow-Origin:*
im response-header(s) für die Anzeige der korrekten HTTP-status-code.Sehen diese AWS-thread zum Thema (was ist älter als ein Jahr schon):
https://forums.aws.amazon.com/thread.jspa?messageID=728839
Swagger-UI-Diskussion auf dasselbe: https://github.com/swagger-api/swagger-ui/issues/3403
BEARBEITEN /AKTUALISIEREN
Dies ist inzwischen behoben, mit der Verwendung von Gateway-Antworten. Das gleiche forum (Seite 2):
https://forums.aws.amazon.com/thread.jspa?messageID=728839
InformationsquelleAutor Hexie
Ich Treffer dieser Fehler bei der lokalen Entwicklung (d.h., nichts zu tun hatte mit AWS). Die zugrunde liegende Ursache (CORS-Verletzung) ist identisch. Das folgende könnte helfen, andere, die dieses problem auftreten.
Richte ich connexion mit eine Open API spec, bezeichnet http://localhost:9090/. Wenn der Entwicklungs-server startet, heißt es "Laufen auf http://0.0.0.0:9090/". Die Seite scheint zu funktionieren, aber das swagger-ui verwendet http://localhost:9090/ aus der Open API spec für nachfolgende Anforderungen und zeigt
TypeError: Failed to fetch
Ergebnisse. Die browser-Konsole zeigtAccess to fetch at 'http://localhost:9090/vr/variation' from origin 'http://0.0.0.0:9090'
. Die bereitgestelltencurl
Befehl funktionierte gut, obwohl anfangs verwirrend, die curl-Erfolg ist ein Hinweis darauf, dass das problem durch browser blockieren anstelle von server-seitigen Fehler.(Connexion basiert auf Python-flask und bietet eine erweiterte Unterstützung für Open API-integration.)
InformationsquelleAutor Reece
Disclaimer: Diese Antwort ist für die APIs entwickelt, mit Asp.net Kern
Ich habe vor ähnlichen Problem, wenn Sie versuchen, Zugriff auf die APIs aus dem Swagger-UI-Editor.
Ich habe versucht, den Zugriff auf bestimmte APIs entwickelt, mit Asp.net Kern, wo die Swagger-UI-Editor wurde auf Apache gehostet. Ich Stand vor CORS (Cross Orgin Anfrage).
Muss ich ändern, meine APIs-code können CORS Anfrage mit dem folgenden code:-
Deklarieren Sie innerhalb der Start.cs-Datei mit der Klasse "StartupShutdownHandler"
Fügte einen code-Abschnitt, der innerhalb ConfigureServices Methode.
Hinzugefügt eine Zeile code innerhalb der Methode Konfigurieren.
Referenz Enable Cross-Origin-Requests (CORS) in ASP.NET Kern
InformationsquelleAutor hellowahab
Weil das problem der cross-origin bedeutet, dass Ihre website gehostet wird, auf die entweder lokal oder mit port 8000 oder anderen port, und Ihre Arroganz die port-Nummer ist anders, so dass dieses problem echt ist. Wir können es beheben, indem Sie die Erlaubnis.
Hier ist die node-code:
Lösen wir durch die Verwendung von CORS npm als gut.
https://www.npmjs.com/package/cors
InformationsquelleAutor chandan