À moins que je ne termine la fonction de traitement Ajax par exit()
ou die()
, la fonction Ajax reçoit la sortie souhaitée et correcte mais en suivant par 0
.
Une idée pourquoi cela se produit-il?
Est-ce que c'est censé être comme ça ou ça 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 les plugins , mais pourquoi est-ce nécessaire?
Réponses:
La réponse par défaut de
admin-ajax.php
est,die( '0' );
... en ajoutant votre propre
wp_die()
ouexit()
oudie()
après son retour votre contenu souhaité empêche la réponse par défaut d'admin-ajax.php
être renvoyé aussi bien.Cela signifie également généralement que votre appel ajax a réussi.
En fin de compte, pour répondre à votre question, c'est censé fonctionner de cette façon. Ce que vous faites en quittant après avoir renvoyé votre contenu est la bonne chose à faire.
la source
die()
ouexit()
après avoir fait écho à votre contenu / données. Dans lasuccess/complete
fonction de rappel de votre méthode ajax, vous pouvez ensuite manipuler les données et les utiliser pour remplir le DOM. Vous pouvez également effectuer une vérification d'erreur supplémentaire pour valider l'intégrité des données. Vous pouvez également effectuer une vérification des erreurs dans votre fonction de rappel PHP avant la sortie. En quittant essentiellement votre réponse, vous vous assurerez que vous ne vous entendez pas également0
avec elle. Soit dit en passant, ce n'est pas parce que vous recevez une0
réponse que votre appel ajax a réussi à 100%. Cependant, c'est facile à dire lorsque vous inspectez votre sortie.wp_die()
ajouté dans 2.0.4wp_die
à d'autres plugins ou code de thème qui peuvent se connecter à ce processus, puis, en utilisantdie
ouexit
c'est ok. Si vous avez l'intention de publier votre code en tant qu'OSS ou autrement, là où votre code doit jouer bien avec les autres, ilwp_die
serait préférable, d'accord.