Heim >Backend-Entwicklung >PHP-Problem >Was soll ich tun, wenn PHP das JSON-Format nicht zurückgeben kann?

Was soll ich tun, wenn PHP das JSON-Format nicht zurückgeben kann?

藏色散人
藏色散人Original
2023-01-29 09:40:173427Durchsuche

Lösung für das Problem, dass PHP das JSON-Format nicht zurückgeben kann: 1. Ermitteln Sie die spezifische Ursache des Fehlers und führen Sie den Befehl „var a=JSON.stringify(error);alert(a);“ aus und den Code „var b= eval(“(“ + data + „)“);“ ausführen.

Was soll ich tun, wenn PHP das JSON-Format nicht zurückgeben kann?

Die Betriebsumgebung dieses Tutorials: Windows 10-System, PHP-Version 8.1, DELL G3-Computer

Was soll ich tun, wenn PHP das JSON-Format nicht zurückgeben kann?

php kann das Standard-JSON-Format nicht zurückgeben: Die von $.ajax zurückgegebenen Daten können die Erfolgslösung nicht durchführen

Das Standardformat von JSON: {"key":"value"," key ": "value" }

1. Senden Sie den Code am Frontend wie folgt:

$.ajax({
                type: "post",
                url: "index.php?m=Index&a=accessIn&act=access",
                async: true,
                data: {
                    login_access: $('#login_access').val()
                },
                dataType: "text",
                success: function (data) {
                    if (data.codeId == "0") {
                        alert(data.err);
                    } else {
                       alert(data.err);
                      window.location.href = "index.php?m=Index&a=lockData";
                    }
                },
                error:function(error){
                    var a=JSON.stringify(error);
                    alert(a);
                }});

2. Nach der PHP-Hintergrundverarbeitung lautet der Rückkehrcode:

            $res['err']    = "欢迎您";
            $res['codeId'] = "1";

console.log(data), was sein kann angezeigt als: {err: „Falsches Passwort eingegeben!“, codeId: „0“}, der Codeschlüssel enthält keine doppelten Anführungszeichen und liegt im nicht standardmäßigen JSON-Format vor, was dazu führt, dass die von $.ajax zurückgegebenen Daten fehlschlagen .

Drittens lautet die Analyse wie folgt:

  • Bestimmen Sie die spezifische Ursache des Fehlers. Da das zurückgegebene Objektformat [Objektobjekt] ist, muss es in das Zeichenfolgenformat konvertiert werden, um den Grund schnell zu finden:

var a=JSON.stringify(error);
 alert(a);

Wenn das Format falsch ist. Wenn es korrekt ist, lautet der zurückgegebene Fehlercode im Wesentlichen: readyState=4, status=200.

  • Die erste besteht darin, den PHP-Code zu ändern und das Standard-JSON-Format direkt zurückzugeben. Aufgrund der fehlenden Formatierung des Datenvisualisierungscodes wird in diesem Beispiel die Rückkehr zum Frontend verwendet, um das Problem zu lösen : dataType: "text",
    Nach der Rückkehr Das Format ist: {"err": "Falsches Passwort eingegeben!", "codeId": "0"}, führen Sie typeof() aus, es ist ersichtlich, dass es sich um ein Zeichenfolgenformat handelt , der String muss in JSON konvertiert werden und die Funktion eval wird verwendet:

Die Funktion
eval() wird verwendet, um einen String-Ausdruck auszuführen und den Wert des Ausdrucks zurückzugeben – aus dem Anfänger-Tutorial

var b= eval("(" + data + ")");//一定按照该格式才是标准的JSON格式
Vollständige Frontend-Übermittlung und Rückgabecode:

$.ajax({
                type: "post",
                url: "index.php?m=Index&a=accessIn&act=access",
                async: true,
                data: {
                    login_access: $('#login_access').val()
                },
                dataType: "text",
                success: function (data) {
                    var b= eval("(" + data + ")");//string 2 json
                    if (b.codeId == "0") {//读取键值进行判断
                        alert(b.err);
                    } else {
                       alert(b.err);
                      window.location.href = "index.php?m=Index&a=lockData";//跳转页面;
                    }
                },
                error:function(error){
                    var a=JSON.stringify(error);//解析对象为字符串,快速确定原因;
                    alert(a);
                }});
Fertig!

Empfohlenes Lernen: „

PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn PHP das JSON-Format nicht zurückgeben kann?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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