Problem mit JQuery beim Abrufen von JSON-Daten vom Server

WBOY
Freigeben: 2016-09-08 08:44:04
Original
1052 Leute haben es durchsucht

Die gleiche Ajax-Methode fordert die von verschiedenen PHP zurückgegebenen JSON-Daten an. Es ist seltsam, dass eine einen Wert haben kann und die andere keinen Wert hat. Das Folgende ist die Verarbeitung meiner Ajax-Methode, die Rückgabedaten empfängt

<code>function getUpList(_url, _u, _p){
    $.ajax({
        type:"GET",
        data:$.param({uid:_u, page:_p}),
        url:_url,
        dataType:'json',
        success:function(obj){
            alert(obj.status);
            if(obj.status == 1){
                $('div[name="data-list-p"]').append(obj.html);
            }
        }
    });
}</code>
Nach dem Login kopieren
Nach dem Login kopieren

Ich bin mir sehr sicher, dass die von obj erhaltenen Daten tatsächlich im JSON-Format vorliegen. Die Warnung ist jedoch immer undefiniert, was bedeutet, dass sie sehr verwirrend ist!

Antwortinhalt:

Die gleiche Ajax-Methode fordert die von verschiedenen PHP zurückgegebenen JSON-Daten an. Es ist seltsam, dass eine einen Wert haben kann und die andere keinen Wert hat. Das Folgende ist die Verarbeitung meiner Ajax-Methode zum Empfangen von Rückgabedaten

<code>function getUpList(_url, _u, _p){
    $.ajax({
        type:"GET",
        data:$.param({uid:_u, page:_p}),
        url:_url,
        dataType:'json',
        success:function(obj){
            alert(obj.status);
            if(obj.status == 1){
                $('div[name="data-list-p"]').append(obj.html);
            }
        }
    });
}</code>
Nach dem Login kopieren
Nach dem Login kopieren

Ich bin mir sehr sicher, dass die von obj erhaltenen Daten tatsächlich im JSON-Format vorliegen. Die Warnung ist jedoch immer undefiniert, was bedeutet, dass sie sehr verwirrend ist!

Es ist so erstaunlich, der Fragesteller, sind Sie sicher, dass es sich bei den beiden angeforderten json um Standarddaten handelt? Wenn sie alle Standard sind, sollte undefined nicht erscheinen. Sie können versuchen, eval hinzuzufügen!

<code>success:function(obj){
    obj = eval("("+obj+")");
    alert(obj.status);
    if(obj.status == 1){
        $('div[name="data-list-p"]').append(obj.html);
    }
}</code>
Nach dem Login kopieren

Haben Sie die Daten? Sie können sie in der Chrome-Konsole überprüfen

Ist das von den beiden URLs zurückgegebene Datenformat falsch? Überprüfen Sie, ob JSON nicht Standard ist

sollte nicht das JSON-Format zurückgeben, sondern JSON 字符串, konvertieren Sie es einfach

Sowohl Chrome als auch Firefox können die zurückgegebenen Parameter sehen. Sehr gute Bestätigung! ~
Beeilen Sie sich nicht mit der Ausgabe des .status. Es ist besser, zuerst das gesamte Objekt auszugeben und sich dann das Ergebnis anzusehen~!

Ändern Sie den Code, der JSON von PHP zurückgibt, so, dass er derselbe ist, und sehen Sie sich das an

Hmm. Ich bin mir auch sicher, dass Sie json-Daten erhalten haben, aber hat dieses obj wirklich das status-Attribut?


console.log(obj);Auf diese Weise ist es bequemer, es auf der Konsole anzuzeigen.

<code class="javascript">var obj_json =  JSON.parse(obj);</code>
Nach dem Login kopieren

String wird zu JSON

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage