2016-04-02 5 views
1

komplette Neuling Frage hat:Wie eine Antwort zu erfassen, die ein Objekt nicht

Wenn ich Datenbank-API abfragen, habe ich manchmal eine Antwort erhalten, die keine Objekte enthält.

Mit dem folgenden Code werden überhaupt keine Warnungen ausgelöst.

Ich brauche eine Methode, um diese Art von leeren Antwort zu erkennen - jQuery.isEmptyObject funktioniert nicht.

$.get("http://api.lmiforall.org.uk/api/v1/ashe/estimatePay", 
{ soc: soc, coarse: "false", filters:"region:12"}, 
function(datani) { 

alert(datani); 

if(jQuery.isEmptyObject(datani)) { 
alert("empty"); 

} 
+0

Sie erhalten "" alarmiert oder leer? –

+0

_ "Ich bekomme manchmal eine Antwort, die kein Objekt enthält" _, _ "Ich brauche eine Methode, um diese Art von leerer Antwort zu erkennen" _ Was meinst du mit "leer"? Wird zuerst 'alert()' aufgerufen? – guest271314

+0

Mit dem obigen Code erscheint überhaupt keine Alarmbox. – Bizzy

Antwort

0

Verwenden Sie das Ereignis zu identifizieren.

<script> 
    $.get("test.php", { name: "John", time: "2pm" }) 
     .done(function(data) { 
      alert("Data Loaded: " + data); 
    }); 
</script> 
0

Es klingt wie Sie keine Antwort sind verwirrend als ein leeres object zu sein.

Etwas wie:

var myObj = {}; 

würde ein leeres Objekt in Betracht gezogen werden, dass isEmptyObject() für true zurückgeben würde, aber eine leere Zeichenfolge (keine Antwort) würde nicht ändern

Versuchen:

if(jQuery.isEmptyObject(datani)) { 

Um

if(!datani) { 
+0

Danke - versucht dies - immer noch keine Alarmbox – Bizzy

+0

Sie müssen die tatsächliche Anfrage debuggen und stellen Sie sicher, dass es sogar erfolgreich ist. Überprüfen Sie es in Browser-Dev Tools-Netzwerk – charlietfl

0

Mit dem obigen Code erscheint überhaupt keine Alarmbox.

Die erste alert() sollte aufgerufen werden; ob die Antwort ein Objekt ist oder nicht.

Sie können Fehler in dem Ajax-Request .fail() mit Handling textStatus, errorThrown oder dem Eigentum von jqxhr Objekt aufmerksam zu machen.

Hinweis, auch js bei Frage fehlt Schließen }) bei $.get().

$.get("http://api.lmiforall.org.uk/api/v1/ashe/estimatePay", 
    { soc: soc, coarse: "false", filters:"region:12"}, 
    function(datani) { 
    alert(datani); 
}).fail(function(jqxhr, textStatus, errorThrown) { 
    alert(textStatus + " " + errorThrown) 
}) 
+0

@Bizzy Ist '" grob "' richtig geschrieben? Ist 'soc' definiert? Was ist 'soc'? Wird 'alert()' bei '.fail()' mit 'js' am Post aufgerufen? – guest271314

+0

Danke für die Antwort. Alle Variablennamen sind korrekt. Dieser Code funktioniert ordnungsgemäß, wenn die API einige Daten zurückgibt und meine App einwandfrei funktioniert. Aber manchmal fragt meine Abfrage nach nicht vorhandenen Daten und dann tritt dieses Problem auf. – Bizzy

+0

_ "Aber manchmal fragt meine Abfrage nach nicht vorhandenen Daten und dann tritt dieses Problem auf." _ Was meinst du mit "dieses Problem tritt auf"? 'alert()' sollte aufgerufen werden, ob die Antwort ein Objekt ist oder nicht; erfolgreich oder gibt einen Fehler zurück – guest271314

Verwandte Themen