la redirection ne fonctionne pas dans la fonction ajax
2 réponses
- votes
-
- 2014-02-08
La requête AJAX s'exécuteen arrière-plan.Les redirectionsicin'affectentpas lapageprincipale.Et 302n'estpas uneerreur,c'estjuste un code d'état.
Votre réponse AJAX doit renvoyer soit l'URLet le code d'état de lapage appelante,soit simplement unnuméro comme 1. Ensuite,vousgérez la redirection dans lapage appelante:
jQuery( document ).ready( function( $ ) { var url = '<?php echo home_url(); ?>'; $( '#ajaxtrigger' ).on( 'click', function() { $.post( ajaxurl, {}, function( response ) { if ( 1 == response ) top.location.replace(url); }); return false; } ); });
The AJAX request runs in the background. Redirects here do not affect the main page. And 302 is not an error, it is just a status code.
Your AJAX response should return either the URL and the status code to the calling page or just a number like 1. Then you handle the redirect in the calling page:
jQuery( document ).ready( function( $ ) { var url = '<?php echo home_url(); ?>'; $( '#ajaxtrigger' ).on( 'click', function() { $.post( ajaxurl, {}, function( response ) { if ( 1 == response ) top.location.replace(url); }); return false; } ); });
-
- 2014-09-30
Si vous souhaitezeffectuer une redirection,utilisezjavascript
window.lcation="your url"
dans votre codephp.Essayez ceci dans votrefonction quiest appeléepar l'appel ajax;
add_action('wp_ajax_nopriv_custom_register', 'custom_register'); add_action('wp_ajax_custom_register', 'custom_register'); function custom_register(){ //process $url = home_url(); ?> <script> demo(); //function name of jscript function demo() { window.location="<?php echo $url ?>"; } </script> <?php exit; }
If you want to redirect then use javascript
window.lcation="your url"
in your php code.Try this in your function that is called by the ajax call;
add_action('wp_ajax_nopriv_custom_register', 'custom_register'); add_action('wp_ajax_custom_register', 'custom_register'); function custom_register(){ //process $url = home_url(); ?> <script> demo(); //function name of jscript function demo() { window.location="<?php echo $url ?>"; } </script> <?php exit; }
-
Comment cela répond-il à la question?How does this answer the question?
- 2
- 2014-09-30
- Johannes Pille
J'utilise ajaxpourpublier les données duformulaire.Enfin de compte,je veux rediriger vers lapage d'accueil.J'essaye de suivre le code,celane fonctionnepas.Il renvoie l'erreur 302. Commentpuis-je rediriger dans lafonction suivante?Merci.