-
Notifications
You must be signed in to change notification settings - Fork 8.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Valid response returning "TypeError: Failed to fetch" #3403
Comments
Hi @ShaneGMamet, I see this error from the Fetch API in the JS console:
I see the browser is doing an OPTIONS pre-fetch which returns the correct |
+1, @owenconti. This detail in CORS caught me up for a bit:
I'm not certain this is the problem, since you mentioned that v2 worked for you - but isolating this is a good start. It's possible that your server is only failing to return CORS headers with 4xx errors - have you tried that with v2? |
@shockey and @owenconti Thanks for the feedback, your responses led me to figure out what the issue is, and it's actually an AWS bug with the API Gateway Custom Authorizers. For anyone with this issue that is using AWS API Gateway's custom authorizers, see this AWS thread - this has been an issue for over a year already: How to setup response headers for a custom authorizer In a nutshell - AWS API Gateway custom authorizers do not support returning headers (at all), hence, the issue of it not displaying correctly within the Swagger page. Until AWS make changes to their Authorizers, we cannot test this - please feel free to close this for now. I'll update this again once the fix has been made. |
@ShaneGMamet, glad you figured it out. Closing! |
@milpas999, this sounds like a different problem. Can you open a new issue? Please follow the provided template, and include any errors you see in your browser console as well. Thanks! |
You can easilly replicate this by entering link from bittrex api: https://github.com/jfastnacht/bittrex-openapi-specification ... which directs to: And here trying any of "gets" You will receive: "TypeError: Failed to fetch" Normal get (ie from browser url) works ok: |
Hi @virtimus, thanks for the super easy link to reproducing this! Looking in my browser console, I see the underlying error is as follows:
This is a CORS error. Basically, Bittrex needs to add headers to their responses that tell web browsers that other websites are allowed to send requests to their API. This is a built-in browser security mechanism, there's no way we can sidestep it in Swagger-UI as long as we run in a browser. |
@owenconti @ShaneGMamet , can we show the response error message form the server side when authorize error? |
@harrisyang, this has been implemented recently, see #4058 and #4295 |
FYI this error can also happen if the user selects an HTTPS scheme and on their local development environment has a self signed SSL certificate. In this case adding -K to the curl command will fix the error or also just selecting the HTTP scheme should be sufficient. |
I have 2 servers configured in the servers section (localhost and Prod), and in my case this error was caused bu using Prod server when I supposed to use localhost. |
because of cross origin its happening visit for node : https://www.npmjs.com/package/cors |
@KESNERO this issue is resolved, please open a new one if you need help! |
As requested, please see below a new issue I am having;
I've just grabbed master (3.0.19) and am having this exact same issue, see my Stackoverflow post here: https://stackoverflow.com/questions/45156665/swagger-ui-typeerror-failed-to-fetch-on-valid-response
In a nutshell, I've simply upgraded to 3.0.19 then forced a 403 error, instead of getting a 403 - forbidden, it's returning "TypeError: Failed to fetch".
Previous version: * @Version v2.2.6
Below is my definition snippet
Swagger page currently with the issue: https://api-swagger-uk-test.leap.services/#/
The URL is HTTPS: https://uk-test-api.leap.services/api/v1/cards
PS - I've since tested with a 401 response and get the same issue:
And a 400 is working as expected:
@shockey
@webron
The text was updated successfully, but these errors were encountered: