Whatwg Fetch fails when json parsing an empty response, how can I prevent it?

Beldar picture Beldar · May 17, 2016 · Viewed 10.1k times · Source

I'm using the Fetch API both in the frontend and on the backend (NodeJS), a problem that I've been facing a lot happens when parsing the response as json.

response.json() will return a promise so I don't know beforehand what the body of the response is, and when the body is empty the JSON parsing will fail with the error:

SyntaxError: Unexpected end of input

So my question is, how to prevent parsing the response when its empty?

Thanks

Answer

Anne picture Anne · May 19, 2016

Once you have the Response object, inspect the headers and see what Content-Length says. Based on that you can know whether or not there is something to parse. But also, it seems bogus for the server to return an application/json resource that is empty, as that is not JSON.