Quando si utilizza l'API di recupero per recuperare alcuni JSON da un'API REST sul mio server locale e si tenta di analizzare la risposta con response.json()
, sto ricevendo un unexpected end of input
errore.API di recupero - utilizzando response.json() genera un errore imprevisto di input
L'errore è facilmente riproducibile sul mio server locale con il seguente one-liner:
fetch(new Request('http://localhost:9950/RestService/v2/search/find/1', {mode: 'no-cors'})).then(function(response) { response.json(); });
// Output from Chrome console:
// Promise {[[PromiseStatus]]: "pending", [[PromiseValue]]: undefined}
// VM424:1 Uncaught (in promise) SyntaxError: Unexpected end of input
// at SyntaxError (native)
// at <anonymous>:1:128
Se visualizzo la scheda di rete, posso vedere che la mia richiesta è stata soddisfatta dal server, e se l'anteprima la risposta Riesco a vedere che c'è un JSON valido disponibile lì (l'ho ricontrollato copiando e incollando il JSON dalla scheda Network Response in jsonlint.com). Ecco un esempio della risposta sto ottenendo dal server:
{
"SearchMatches": [{
"Extracts": ["<b>1<\/b>.txt...", "<b>1<\/b>"],
"Title": "1.txt",
"Url": "C:\\TestShare4\\500Docs\\1.txt"
}]
}
Se provo ad usare response.text()
invece di response.json()
ottengo una stringa vuota.
Qualche idea su dove potrei sbagliare con questo?
Nota che è necessario non dipendere da altri framework o librerie diversi da quelli supportati nativamente dal browser.
Sto avendo un problema simile, avete risolto questo? –
Ho avuto lo stesso problema ed è stato risolto da http://stackoverflow.com/a/35291777/3192470. – lakesare