Wenn ich die Fetch-API verwende, um JSON von einer REST-API auf meinem lokalen Server abzurufen und die Antwort mit response.json()
zu analysieren, erhalte ich eine unexpected end of input
Error.Fetch-API - mit response.json() löst ein unerwartetes Ende des Eingabefehlers
Der Fehler ist leicht reproduzierbar auf meinem lokalen Server mit dem folgenden Einzeiler:
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
Wenn ich auf die Registerkarte Netzwerk zu sehen, kann ich sehen, dass meine Anfrage vom Server erfüllt wurde, und wenn ich eine Vorschau Die Antwort Ich kann sehen, dass dort gültiges JSON verfügbar ist (ich habe das durch Kopieren und Einfügen des JSON von der Registerkarte "Netzwerkantwort" in "jsonlint.com" überprüft). Hier ist ein Beispiel der Antwort, die ich bin vom Server bekommen:
{
"SearchMatches": [{
"Extracts": ["<b>1<\/b>.txt...", "<b>1<\/b>"],
"Title": "1.txt",
"Url": "C:\\TestShare4\\500Docs\\1.txt"
}]
}
Wenn ich versuche, response.text()
zu verwenden, anstatt response.json()
ich einen leeren String zu bekommen.
Irgendwelche Gedanken darüber, wo ich damit falsch liegen könnte?
Beachten Sie, dass ich nicht von anderen Frameworks oder Bibliotheken abhängig sein muss, die vom Browser nativ unterstützt werden.
Ich bin ein ähnliches Problem haben, haben Sie dieses Problem lösen? –
Ich hatte das gleiche Problem und es wurde von http://stackoverflow.com/a/35291777/3192470 gelöst. – lakesare