Heim  >  Artikel  >  Backend-Entwicklung  >  Javascript – Ajax-Rückgabewertproblem

Javascript – Ajax-Rückgabewertproblem

WBOY
WBOYOriginal
2016-09-28 08:54:09858Durchsuche

Der Ajax-Anforderungscode lautet wie folgt:
Javascript – Ajax-Rückgabewertproblem
PHP-Verarbeitungsteil:

Javascript – Ajax-Rückgabewertproblem
Firebug:

Javascript – Ajax-Rückgabewertproblem
Warum kann es nicht gedruckt werden? ? ?

Antwortinhalt:

Der Ajax-Anforderungscode lautet wie folgt:
Javascript – Ajax-Rückgabewertproblem
PHP-Verarbeitungsteil:

Javascript – Ajax-Rückgabewertproblem
Firebug:

Javascript – Ajax-Rückgabewertproblem
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,

zu verwenden
<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...

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn