I need to fetch JSON data from a localhost server using JS.
The fetch request throws an error:
Uncaught (in promise) SyntaxError: JSON.parse: unexpected end of data at line 1 column 1 of the JSON data
It looks like the answer is empty, but when I open the browser dev tool I can see the JSON data in the network section.
fetch(url, init)
.then(res => res.json()) //return the error
fetch(url, init)
.then(res => res.text()) //return an empty string
The result I can see in the network section is well formatted and when I copy/paste it to manually use JSON.parse() I get the right result.
You have to return the promise and than wait:
const method = async() =>{
return fetch(url, init)
.then(res => res.json())
.catch(err)=>{
//manage error here
}
}
than you do :
method().then(res=>....)
For more info look here : How to get data returned from fetch() promise?