Prüfen, ob die AJAX-Antwort leer ist und andere Probleme auftreten

8

Ich versuche gerade zu überprüfen, ob die Antwort, die ich bekomme, leer ist. Nun, was ich denke, wird funktionieren:

%Vor%

Ich denke, was ich tue, wird erreichen, was ich anstrebe, aber ich kann es nicht herausfinden, da ich eine zweite Ausgabe von tData[0] is undefined habe und versuche, Daten für etwas zu holen Das, was ich weiß, wird definitiv eine leere Antwort zurückgeben, so weit es mich betrifft, sollte es nicht einmal diesen Teil des Codes treffen.

Ich bin damit etwas verloren, also wird jede Hilfe sehr geschätzt.

    
LiamGu 17.08.2010, 13:40
quelle

6 Antworten

13

Wenn Sie in den Erfolgshandler Ihres $.ajax -Aufrufs geraten, erhalten Sie wahrscheinlich ein leeres Objektliteral zurück (wenn ein JSON-Datentyp zurückgegeben wird). Also du bist Null-Check ist fehlgeschlagen, weil es wirklich nicht null ist - es ist leer.

Hier ist eine Auswahl von dem, was passiert:

%Vor%

Im ersten Test wird die Nullprüfung fehlschlagen und Sie erhalten eine Warnung von 'object [Object]'. Aber der zweite Test wird erfolgreich sein und Sie erhalten die Warnung "Ich bin leer".

Hier ist ein Link zu jsFiddle: Ссылка

$. isEmptyObject () befindet sich in jQuery 1.4 (gemäß der jQuery-API) und ist daher nicht verfügbar, wenn Sie nicht in dieser Version sind.

    
David Hoerster 17.08.2010, 14:12
quelle
6

Was für mich funktionierte war:

%Vor%     
user984003 05.08.2013 04:25
quelle
2

Das Beschneiden der Daten für Leerräume funktionierte für mich.

%Vor%     
Muk 08.04.2014 08:53
quelle
1

Ich glaube, dass die Erfolgsfunktion auch dann eine Nicht-Null-Zeichenfolge übergeben wird, wenn keine Daten zurückgegeben werden. Daher müssen Sie möglicherweise nach tData == '' suchen (zusätzlich zur Überprüfung von tData == null)

    
Ed Schembor 17.08.2010 13:49
quelle
0

Seltsamerweise fand ich bei dieser Situation heraus, dass dieser Vergleich funktioniert:

%Vor%

Weder! data oder $ .isEmptyObject (data) haben eine leere Antwort korrekt erkannt. Ich benutze jQuery 1.7.1.

    
jeffday 21.03.2013 23:24
quelle
0

Ich schlage vor, dass Sie das Rückgabeergebnis in eine Zeichenfolge konvertieren und dann mit der Validierung beginnen. bcos ajax gibt möglicherweise einen bestimmten Datentyp zurück, den Sie nicht validieren können: Probieren Sie dies

aus %Vor%     
Africa Matjie 06.06.2013 08:39
quelle

Tags und Links