Comments (7)
Definitely sounds like a bug. The presence of a body should not affect the the post-processing. However I tried a quick unit test, but could not reproduce. Perhaps I'm missing something, but in the meantime, could you see if catch
/andCatch
work? If they do, is there an error returned?
from react-refetch.
@ryanbrainard catch
/andCatch
fails with
SyntaxError: Unexpected end of input
With no stacktrace.
from react-refetch.
@neezer Ok, so probably a problem with the JSON parser blowing up and rejecting the promise. What version of whatwg-fetch are you using? Either way, we can handle it in RR, but it wondering why my unit test didn't fail...
from react-refetch.
"whatwg-fetch": "^0.11.0"
from react-refetch.
Hmm, same as me. I can dig in more later. Guessing the problem is in https://github.com/heroku/react-refetch/blob/master/src/components/connect.js#L105-L112 if someone wants to experiment
from react-refetch.
@ryanbrainard That seems like a good guess. Thinking that because response.body
stream is empty, the line that reads response.json()
is effectively doing something akin to JSON.parse("")
, which yields the same error I'm getting.
from react-refetch.
@ryanbrainard Toying around, this fixes the issue for me, though no vote on whether or not this is a good approach (just adding an early return):
function handleResponse(response) {
if (response.headers.get('content-type') === null) return;
var json = response.json(); // TODO: support other response types
if (response.status >= 200 && response.status < 300) {
// TODO: support custom acceptable statuses
return json;
} else {
return json.then(function (cause) {
return Promise.reject((0, _errors2.default)(cause));
});
}
}
Perhaps better to gate the JSON parsing based on whether or not the Content-Type
is actually application/json
.
from react-refetch.
Related Issues (20)
- Identity requests meta does not have component HOT 1
- Accessing the response body in case of reject HOT 2
- Posting data and having it return as a promise HOT 5
- impossible to update my props into react-refetch HOT 1
- Update Lifecycle Hooks for Future Async Rendering HOT 3
- skip/disable/remove fetch config conditionally HOT 4
- Doesn't support SSR HOT 5
- [idea] useRefetch HOT 5
- Refresh POST method request doesn' work HOT 1
- [Typescript] Type of "body" attribute must be string? and not object? on the Mapping interface
- Can you retry a failed request from within render? HOT 1
- Typings problem with PromiseStateMapping/FunctionMapping HOT 1
- Pass this.state.data to then(), catch(), andThen() and andCatch() functions for more powerful side effects HOT 2
- Override default behavior on failure of fetch with refreshInterval HOT 1
- Typescript types seem not to work properly HOT 9
- react 16.9, Warning: componentWillMount has been renamed, and is not recommended for use HOT 2
- Fetch rejected but reason empty HOT 2
- Example in README cannot be compiled in TypeScript HOT 1
- Is it possible to use a callback of a request? HOT 4
- Support for react@17 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from react-refetch.