Heim > Artikel > Backend-Entwicklung > Javascript – Ajax-Rückgabewertproblem
Der Ajax-Anforderungscode lautet wie folgt:
PHP-Verarbeitungsteil:
Firebug:
Warum kann es nicht gedruckt werden? ? ?
Der Ajax-Anforderungscode lautet wie folgt:
PHP-Verarbeitungsteil:
Firebug:
Warum kann es nicht gedruckt werden? ? ?
Ich bevorzuge die direkte Verwendung von $.post(settings)
(tatsächlich bevorzuge ich direkt $.ajax(url, settings)
), damit die Parameter klarer sind. Der Rückruf wird durch $.post()
oder $.ajax()
des von done()
zurückgegebenen Versprechens festgelegt, damit die Struktur klarer ist
<code class="javascript">$.post({ url: theurl, dataType: "json", data: { tablename: _tbname } }).done(function(jo) { // jo 是 javascript object // 从后端返回的 JSON 解析而来 console.log(jo); });</code>
Mit Ihrer Methode können Sie nach dem Rückruf auch direkt einen Parameter „json“ hinzufügen, um den Datentyp anzugeben
<code>$.post("http://url/", { tablename: _tbname}, function(data) {}, "json");</code>
json_encode($data,JSON_UNESCAPED_UNICODE)
Es wird kein Fehler gemeldet, Sie können Firefox neu starten und einen Blick darauf werfen
PS: Setzen Sie den Antwortheader @header("Content-Type:application/json;charset=utf8");
Sie können var weglassen json = eval (data); Dies ist der Schritt
und die Verwendung von eval ist nicht sicher, es wird empfohlen,
<code>var json = jQuery.parseJSON(data);</code>
Ändern Sie Chrome (ich bin das Firefox-Debugging wirklich nicht gewohnt, vergessen Sie es, wenn Sie sich daran gewöhnen), Breakpoint-Debugging, es gibt wahrscheinlich keine Möglichkeit, es einzugeben. Ich habe Firefox schon lange nicht mehr verwendet und erinnere mich vage, dass ich schon einmal ein ähnliches Problem hatte. Unter Chrome sollte ein Fehler gemeldet werden, unter Firefox jedoch nicht. Bitte unterbrechen Sie zuerst und schauen Sie sich die Methode an. Versuchen Sie, zu Chrome zu wechseln.
Die standardmäßig zurückgegebenen Daten sind eine Zeichenfolge und kein JSON-Objekt. Die erste Lösung besteht darin, den Rückgabetyp als JSON im Anforderungsparameter anzugeben, und jquery analysiert ihn intern in ein Objekt. Die zweite Lösung besteht darin, das zu deserialisieren JSON-String selbst in ein Objekt einfügen. Zum Beispiel: http://blog.163.com/m13864039...