2016-06-01 9 views
0

kehrt habe ich dieses Stück CodeAJAX response undefined

(function(){ 
    $.ajax({ 
     type: "POST", 
     url: "g.php", 
     data: {g:""+a} 
    }).always(function(a,b,c){ 
     console.log(c.responseText); 
     if (c.responseText.length < 45) { 
      return "error"; 
     } else return (c.responseText); 
    }); 
}()) 

Wenn ich versuche, es zu einer Variablen zuzuweisen undefiniert zurückgeführt wird; Allerdings, wenn ich console.log es, wird der erwartete Wert zurückgegeben ... es ist sehr verwirrend ...

Wie kann ich die Antwort extrahieren, habe ich irgendwo über Rückrufe gelesen, aber es hat nicht geholfen. Ich habe versucht, den Code in viele Moden umzugestalten, ohne Ergebnis.

- Warum druckt console.log das richtige Ergebnis gegenüber undefined mit einer anderen Funktion?

+0

Ich sehe nicht funktioniert, wo Sie jede Variable zuweisen, aber die 'return' Aussagen sind sicherlich verdächtig. –

+0

Der obige Code ist ein Ajax-Aufruf, der entweder einen Fehler zurückgibt, wenn die Antwort vom Server kürzer als 45 Zeichen ist ... –

Antwort

0

Ich bin nicht sicher, aber überprüfen, ob es mit datatype json

$.ajax({ 
     type: "POST", 
     url: "g.php", 
     dataType: 'json' 
     data: {g:""+a} 
    }) 
+0

funktioniert nicht, es macht den Code ungültig –

+0

Ihr fehlt auch ein Komma, nach dem Datentyp –

+0

Opps, ja Entschuldigung, Komma sollte da sein. Und auch Sie müssen Json analysieren, bevor Sie es verwenden – Elnoor