unexpected end of data = JSON.parse(errorThrown.responseText);
habe ich das folgende Skript. Auf Fehler es funktioniert, indem es zeigt ein modales ich habe diese getestet und es funktioniert. Bei Erfolg sollte die Anzeige einer alert-box, aber ich bekomme die Meldung:
SyntaxError: JSON.parse: unexpected end of data
Hier ist die Zeile wirft den Fehler:
data = JSON.parse(errorThrown.responseText);
Jedoch, es sollte nicht ausgeführt werden, das auf Erfolg?
Könnte jemand schauen?
Die Seite wieder 201 CREATED
auf Erfolg, wie es sollte.
$.ajax({
url: '/accounts/create/',
type: 'POST',
dataType: "json",
},
data: $('#registration').serialize(),
success: function () {
console.log('success');
alert("test")
},
error: function (errorThrown) {
data = JSON.parse(errorThrown.responseText);
$('#account-error').modal("show");
$('#error-text').html(data.error);
console.log(errorThrown);
}
});
errorThrown.responseText
ist nicht JSON-formatiert und kann nicht analysiert werden.- Was ist der Wert von
errorThrown.responseText
? - errorThrown nicht 'responseText' - Feld
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das Problem mit dem Datentyp. Die Fehler werden json-aber es sieht aus wie Sie Ihren Erfolg Datentyp nicht. Das bedeutet, dass es löst den "Fehler" - Funktion wieder. Entfernen Sie einfach den Datentyp und sehen, was passiert.
Die Daten versuchen zu analysieren, wie JSON nicht JSON formatiert.
Können Sie verwenden
if(typeof jQuery.parseJSON(errorThrown.responseText)==="object")
zu erkennen, wenn sich der Antwort-text in einem gültigen JSON-format!
Hoffe, das hilft!
BEARBEITEN
Möchten Sie vielleicht zu versuchen, mit jQuery.post():
Sie versuchen, JSON Parsen ein Javascript-Objekt, wenn Sie angeben, dass der Datentyp in der ajax-Anfrage, die Antwort ist bereits konvertiert von Json ein Javascript Objekt.
jQuery.ajax
wennjQuery.post
verfügbar ist. Ich bearbeitet meine Antwort einfach um zu zeigen, dass.