web-dev-qa-db-fra.com

Pourquoi WordPress ajoute-t-il (zéro) à une réponse Ajax?

Sauf si je termine le traitement Ajax par exit() ou die(), la fonction Ajax reçoit la sortie désirée et correcte mais est suivie de 0.

Une idée pourquoi ça se passe?

Est-ce que cela est censé être comme ça ou cela pourrait être corrigé?

add_action('wp_ajax_get_homepage', 'get_homepage');
add_action('wp_ajax_nopriv_get_homepage', 'get_homepage');

function get_homepage(){
    echo "get_homepage ->";
    exit();
}

J'ai lu à AJAX dans Plugins , mais pourquoi est-ce nécessaire?

14
Radek

La réponse par défaut de admin-ajax.php est,

die( '0' );

... en ajoutant votre propre exit() ou die() après le retour du contenu souhaité, empêche que la réponse par défaut de admin-ajax.php soit également renvoyée.

Cela signifie aussi généralement que votre appel ajax a réussi.

En fin de compte, pour répondre à votre question, il est censé fonctionner de cette façon. Ce que vous faites en quittant après avoir renvoyé votre contenu est la bonne chose à faire.

28
userabuser