2016-07-24 13 views
-2

Auf meiner jQuery Ajax-Funktion, ich gibt die Daten aus einem PHP-Skript wie folgt zurückgegeben:JS fügt eine Null am Ende

jQuery(this).html(data); 

Die PHP-Funktion, die die Daten zurückgibt enthält:

echo 'Please do this again.'; 
return; 

aus irgendeinem Grund gibt es als:

dieses again.0 Bitte

So fügt ein 0 am Ende hinzu. Warum passiert das und was kann ich tun, um es zu beheben?

+0

Konnte Sie Frage mit Ergebnis von 'console.log (Daten) aktualisieren;' – sozkul

+0

ok was ist die Ausgabe, wenn Sie php Datei direkt öffnen? Zeigen Sie php relevante Codes an –

+1

Das Problem ist woanders. – nicael

Antwort

1

tl; dr

Sie sollten die innerhalb Ihrer Handler Ajax Aktion wie folgt:

echo 'Please do this again.'; 
// Don't return, die! 
// return; 
die; 

Erklärung

Ihr Code genau ausführt, wie erwartet. Das Problem ist, dass Sie WordPress verwenden und die Ausführung nicht innerhalb der Action-Handler-Funktion gestoppt haben.

Wordpress behandelt Ajax-Aufrufe über wp-admin/admin-ajax.php und die last lines den Ausgang 0 produzieren:

// Default status 
die('0'); 

Innerhalb Ihrer Action-Handler-Funktion, sollten Sie die sich, um sicherzustellen, rufen, dass das Ende dieser Datei nie erreicht und 0 wird nicht an Ihre Antwort angehängt.

2

Schnell Antwort (Ich werde mehr erklären später):

Mit return; Sie produzieren die zusätzliche Leistung, die zu 0 interpretiert wird.

Eighter entfernen, dass return; oder ersetzen Sie es durch eine exit;, um zu stoppen php ausführen.

Andere Möglichkeit ist return 'Please do this again.'; zu tun, wenn Sie außerhalb von Funktionen sind.

Verwandte Themen