- From: Dave Koston <notifications@github.com>
- Date: Thu, 22 Dec 2016 14:27:14 -0800
- To: whatwg/fetch <fetch@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <whatwg/fetch/issues/443@github.com>
I've opened this issues because I'm suprised to not see another one open/closed. Maybe I missed it.
I really don't understand how people are creating production-quality applications with `fetch()` as it does not give access to pre-flight responses.
When an application throws a 403 for example. How is that supposed to be handled with `fetch()`? The only information we have access to is the error form `fetch()` which doesn't even contain a status code. All it contains is the generic string `TypeError: Failed to fetch`
How do we know the difference between a 401? a 403? a 502? a 500?
Sorry for the dramatic example below but this is really frustrating:
```
function handleErrors(response) {
if (!response.ok) {
console.log(response)
}
return response;
}
fetch("http://httpstat.us/403")
.then(handleErrors)
.then(function(response) {
console.log("ok");
}).catch(function(error) {
console.log('there was an error');
console.log('but I don\'t have access to the status code');
console.log('So how can my application know what to do?');
console.log('Should I send the HTTP request again?');
console.log('Maybe my cookie is expired so I need to log in?');
console.log('Why don\'t I have access to response.statusCode?');
console.log(error);
});
```
Is whatwg expecting all applications to send back a 200 for every pre-flight CORS request?
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/fetch/issues/443
Received on Thursday, 22 December 2016 22:27:43 UTC