Ich habe Laravel Response :: json verwendet, um eine JSON-Antwort zu generieren.
%Vor%Wenn ich die Anfrage ausführe, erhalte ich eine gültige JSON (getestet in JSONLint) als Antwort.
Aber die folgende jQuery-Methode schlägt fehl: $.parseJSON(data)
Ich bekomme den folgenden Fehler in FireBug:
SyntaxError: JSON.parse: unerwartetes Zeichen in Zeile 1 Spalte 2 der JSON-Daten
Die Antwort, die ich erhalte:
%Vor%Und der Code, wo ich es analysieren will:
%Vor% Wenn Sie die Da Sie die $.parseJSON(data)
in einem Ajax-Success-Handler verwenden $.parseJSON(data)
in einem Ajax-Success-Handler ausführen, ist das Problem fast sicher, dass jQuery hat schon geparst es für dich. jQuery schaut sich die Content-Type
der Antwort an und analysiert sie, wenn sie application/json
ist, und liefert das geparste Ergebnis an Ihren Erfolgs-Handler. Das erste, was passieren wird, wenn Sie das in $.parseJSON
übergeben, ist, dass es wieder in eine Zeichenkette konvertiert wird ( "[object Object]"
, in Ihrem Fall), was $.parseJSON
dann nicht parsen kann.
Verwenden Sie einfach data
wie es ist, dank des automatischen Parsens ist es bereits ein Objekt: