Swagger de l'INTERFACE utilisateur - “ TypeError: Failed to fetch”, réponse valide
J'ai juste tiré en bas de la dernière Swagger depuis le repo Git (3.0.19) à l'aide de: https://github.com/swagger-api/swagger-ui.git et mise à jour de mon API pour utiliser la nouvelle version.
Couru git describe --tags
pour confirmer et ma version est actuellement: v3.0.19-6-gaab1403
Le problème, je vais avoir est celle décrite ici, où ma réponse est un 403 (je peux le voir dans l'inspecteur sur le navigateur) et bien que j'ai une reponse pour l'erreur 403, je reçois toujours le TypeError: Failed to fetch
message.
Voici un extrait de ma définition de la réponse 403:
"403": {
"description": "Forbidden",
"headers": {
"Access-Control-Allow-Origin": {
"type": "string"
}
}
},
J'ai aussi remarqué qu'il a rapporté ici cependant, je sais que c'est pas une question de la SCRO que je l'ai testé les paramètres et les OPTIONS sont de retour correcte, comme le sont les points de terminaison si elle est appelée avec des informations valides (je me force à ce 403).
Quelqu'un pourrait-il me diriger dans la bonne direction s'il vous plaît?
Mise à jour: depuis, j'ai testé sur une réponse 401, avec la même réponse.
Et qu'un 400 fonctionne comme prévu:
Oui, voir ma réponse ci-dessous, il a une mise à jour (daté en 2017) avec une solution / solution de contournement.
OriginalL'auteur Hexie | 2017-07-18
Vous devez vous connecter pour publier un commentaire.
Pour toute personne qui exécute ce problème;
Après une journée de dépannage et de l'Arrogance de soutien les gars de me pointer dans la bonne direction, il s'avère que c'est actuellement causé par un bogue dans l'API AWS Passerelle personnalisée approbateurs.
Nous sommes actuellement en utilisant AWS Passerelle API pour la gestion de notre Api, il s'agit de gérer l'ensemble de nos autorisation par le biais d'une coutume de l'autorisateur. Le problème est que la coutume approbateurs ne prend pas actuellement en charge en passant par des en-têtes de la réponse et de la Supériorité de l'INTERFACE utilisateur a besoin de la
Access-Control-Allow-Origin:*
dans l'en-tête de réponse(s) pour afficher le bon code d'état HTTP.Voir ce AWS thread sur la question (qui a plus d'un an déjà):
https://forums.aws.amazon.com/thread.jspa?messageID=728839
Swagger INTERFACE de discussion sur le même: https://github.com/swagger-api/swagger-ui/issues/3403
MODIFIER /METTRE À JOUR
Cela a été résolu avec l'utilisation de la Passerelle de Réponses. Voir ce même forum (page 2):
https://forums.aws.amazon.com/thread.jspa?messageID=728839
OriginalL'auteur Hexie
J'ai frappé cette erreur au cours du développement local (c'est à dire, n'avait rien à voir avec AWS). La cause sous-jacente CORS (violation) est identique. Les éléments suivants pourraient aider d'autres personnes qui rencontrent ce problème.
J'configuration connexion avec un openapi spec que visée à http://localhost:9090/. Lorsque le serveur démarre, il dit "en cours d'Exécution sur http://0.0.0.0:9090/". Cette page semble fonctionner, mais le style de l'interface utilisateur utilise http://localhost:9090/ de l'openapi spec pour les demandes ultérieures et montre
TypeError: Failed to fetch
dans les résultats. Le navigateur de la console montreAccess to fetch at 'http://localhost:9090/vr/variation' from origin 'http://0.0.0.0:9090'
. La conditioncurl
commande a bien fonctionné; bien qu'à l'origine de la confusion, de la boucle du succès est un indice que le problème est dû au navigateur de blocage plutôt que côté serveur échec.(Connexion est basé sur Python flacon et offre un support étendu pour openapi intégration.)
OriginalL'auteur Reece
Avertissement:- Cette réponse est pour les Api développé à l'aide de Asp.net Core
J'ai étaient confrontés au même problème lorsque j'essaie d'accéder à l'Api de l'Arrogance de l'INTERFACE utilisateur de l'Éditeur.
J'ai essayé d'accéder à certaines Api développé à l'aide de Asp.net de Base, où, comme le Style de l'INTERFACE utilisateur de l'Éditeur a été hébergé sur un serveur Apache. Je faisais face à des CORS (Cross Origine Demande).
J'ai modifier mon code Api pour permettre la SCRO demande à l'aide du code suivant:-
De déclarer, dans les de Démarrage.cs Fichier ayant la classe "StartupShutdownHandler"
Ajout d'une section de code dans ConfigureServices Méthode.
Ajouté une ligne de code à l'intérieur de Configurer la Méthode.
Référence Activer les Requêtes d'Origine (SCRO) ASP.NET de Base
OriginalL'auteur hellowahab
Parce que le problème de cross-origin signifie que votre site web est hébergé sur que ce soit localement ou avec le port 8000 ou autre port, et votre arrogance du numéro de port est différent, donc ce problème est authentique. On peut y remédier en donnant la permission.
Ici est le nœud code:
On peut le résoudre en utilisant la SCRO mnp.
https://www.npmjs.com/package/cors
OriginalL'auteur chandan