Heim >Backend-Entwicklung >PHP-Tutorial >javascript - Warum sind die von Ajax zurückgegebenen Daten ein Eingabeaufforderungsobjekt?
Warum zeigt das Eingabeaufforderungsergebnis nach der Ausführung [Objekt Objekt], [Objekt Objekt] anstelle spezifischer Daten an?
Das Ergebnis sollte so aussehen [{title: "3333333333333"}, {title: "3333333333333"}]
Dann habe ich es noch einmal versucht alert(obj.title)
Es heißt undefiniert. Warum ist das so?
<code>$res=$xiao->field("title")->select(); $this->ajaxReturn($res); ajax("{:U('zhuye/zhuye')}",oV1,function(str){ var obj = eval("("+str+")"); alert(obj); });</code>
Warum zeigt das Eingabeaufforderungsergebnis nach der Ausführung [Objekt Objekt], [Objekt Objekt] anstelle spezifischer Daten an?
Das Ergebnis sollte so aussehen [{title: "3333333333333"}, {title: "3333333333333"}]
Dann habe ich es noch einmal versucht alert(obj.title)
Es heißt undefiniert. Warum ist das so?
<code>$res=$xiao->field("title")->select(); $this->ajaxReturn($res); ajax("{:U('zhuye/zhuye')}",oV1,function(str){ var obj = eval("("+str+")"); alert(obj); });</code>
Verwenden Sie jquery, um Ihr Problem zu lösen. Bitte lesen Sie die Dokumentation für Details
obj ist ein Array aus zwei Objekten, kein Objekt
Probieren Sie es ausalert(obj[0].title); alert(obj[1].title);
Probieren Sie es aus. Was herauskommt, sollte die von Ihnen erwähnte Array-Form sein.
<code>var obj = JSON.parse(str) alert(obj);</code>
Fügen Sie einfach einen Rückgabedatentyp hinzu, dataType:json
Drucken Sie es aus und sehen Sie es sich an. . . .
sollte
sein<code> alert(obj[0].title); </code>
Ihre Daten sind bereits ein Objekt. Wenn Sie eval oder JSON.prase sind, rufen Sie obj.toString();
auf
Sie werden das Problem erkennen, wenn Sie sich den Unterschied zwischen JavaScript-Literalobjekten und JSON ansehen.
Der Rückgabetyp ist nicht im JSON-Format