Ich fange an zu lernen, reagiert native und stieß auf einige Probleme beim Verwenden von fetch auf Android.Javascript Fetch Antwort Cutoff
try {
let response = await fetch(REQUEST_URL, {
method: "POST",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
***parameters***
})
});
let responseJson = await response;
if(responseJson){
// console.log(responseJson);
console.log(responseJson.text());
// console.log(responseJson.json());
}
} catch(error) {
console.error(error);
}
Die Anforderung wird korrekt gesendet, aber die Antwort ist nicht in seiner Gesamtheit gezeigt:
(**loads more data before**){"ID":"779","DESCRICAO":"ZXCVB","CLIENTENUMERO":"10133","CLIENTENOME":"Lda 1","TREGISTO":"2015\\/11\\/24 09:34:15","TTERMO":"","SITUACAO":"C","TIPO":"P","NOTIFICACOES":"email","NOTIFI_TAREFA":"","ESFORCOS_TOT":"4","TEMPOGASTO_TOT":"0:01:44","TEMPOGASTO_PES":"0:01:44","PROJECTO":"New Products","USERNAME":"AT","UREGISTO":"S","EMCURSO":"0","TULTIMO":"2015\\/12\\/18 20:37:56","EQUIPA":"","NIVEL":"AVISAX"},{"ID":"783","DESCRICAO":"123","CLIENTENUMERO":"10133","CLIENTENOME":"Lda 1","TREGISTO":"2015\\/11\\/24 09:43:26","TTERMO":"","SITUACAO":"C","TIPO":"P","NOTIFICAC
Wie Sie sehen können, das JSON-Objekt nicht vollständig ist. Senden der gleichen Anfrage mit anderen Methoden in einem Browser gibt die JSON korrekt zurück.
Ich frage mich, ob dies ein tatsächliches Problem mit Fetch oder mit Android ist.
Ich habe versucht, Größe und Timeout-Parameter auf 0 im Abruf, aber es hat nichts getan.
Edit: versuchte auch synchron holen statt async verwenden, mit dem gleichen Effekt:
fetch(REQUEST_URL, {
method: "POST",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
***params***
})
})
.then((response) => response.text())
.then((responseText) => {
console.log(responseText);
})
.catch((error) => {
console.warn(error);
}
auch versucht:
console.log(responseJson);
und
console.log(responseJson.json());
Bearbeiten zur weiteren Klärung:
Bei der Verwendung von response.json() wird die Antwort als json (wie zu erwarten) angezeigt, ist aber immer noch unvollständig.
Niemals Postbote verwendet, neigen dazu, Chrome Dev Tool Netzwerk-Sache zu verwenden. In Chrome reagiert die Anfrage mit dem vollständigen JSON, aber ich verwende dort nicht den Abruf, indem ich die Methode webix.ajax(). Post() von Webix verwende. EDIT: wie für Ihre empfohlenen Änderungen, habe ich versucht, und es reagiert in ähnlicher Weise wie response.json(), dass ich erwähnte, dass ich auch verwendet. Es druckt die Ausgabe als json anstelle von normalem Text, aber es schneidet immer noch ab. –
Wenn Sie in console.log einen Haltepunkt einfügen, können Sie das Objekt auswerten, um zu sehen, ob es ganz ist? Ich weiß nicht, wie viele Daten in dem Teil "(** lädt mehr Daten vor **)" - aber, wenn es eine große Menge ist, ist es möglich, dass Sie mit Console.log auf eine Zeichenbeschränkung stoßen. – user7811
Das war es. Ich benutzte Atom mit der Logcat-Konsole von nuclide und es zeigte einfach nicht die ganze Sache. Habe einige Operationen mit dem Json-Objekt gemacht und es geht vollkommen in Ordnung. Prost. –