Admin Ajax renvoie 0
-
-
Avez-vous vérifié que ajaxurlest correctement défini?Have you verified that ajaxurl is set properly?
- 1
- 2013-04-27
- Andrew Bartel
-
La console de votrenavigateur affiche-t-elle deserreurs?Si c'est vrai,que sont-ils?Does your browser console show any errors? If so, what are they?
- 0
- 2013-04-27
- s_ha_dum
-
`jQuery ('. cl_link_buttons'). val ('id'). click (function ()` semble étrange.`jQuery('.cl_link_buttons').val('id').click(function()` looks odd.
- 2
- 2013-04-27
- fuxia
-
Andrew,oui,je pense que c'est correct,l'URL de la requête dans Chrome Inspector affiche domain/wp-admin/admin-ajax.phpAndrew, yes I believe it is correct, the request url in Chrome Inspector is showing domain/wp-admin/admin-ajax.php
- 0
- 2013-04-27
- Apina
-
@s_ha_dum Aucuneerreur affichée@s_ha_dum No errors showing
- 0
- 2013-04-27
- Apina
-
@toscho Peut-être que cela semble étrange,c'était la seulefaçon dontje pouvaispenser à obtenir l'ID des élémentsen cliquant,et celafait letravail,le codemontre également qu'il a ces données,encore unefois,leproblèmeest d'obtenir une réponse duphp.@toscho Perhaps it does look odd, it was the only way I could think of getting the elements ID on click, and it does do the job, the code also shows it has that data, again issue is getting a response from the php.
- 0
- 2013-04-27
- Apina
-
Voir aussi [comment déboguer AJAX avec HTTP] (http://wordpress.stackexchange.com/a/96556/73).See also [how to debug AJAX with HTTP](http://wordpress.stackexchange.com/a/96556/73).
- 0
- 2013-04-27
- fuxia
-
Iln'estpasnécessaire de «retournerfaux».Si vous utilisezjQuery,utilisezplutôt http://api.jquery.com/event.preventdefault/.There is no need to `return false`. If using jQuery, use http://api.jquery.com/event.preventdefault/ instead.
- 0
- 2015-10-26
- Solomon Closson
-
14 réponses
- votes
-
- 2013-04-28
Alorsje l'aifait.Cen'étaitpas lejQueryen tant quetelbien quej'aie amélioré cela,c'était leplacement de lafonction de rappel.Je l'ai déplacé vers lefichierprincipal dupluginet cela afonctionné.
So I worked it out. It was not the jQuery as such though I have improved that, it was the placement of the call back function. I moved it over to the main plugin file and it worked.
-
pouvez-vousmontrer comment vous l'avezfait?can you show how did you do it ?
- 4
- 2014-01-27
- Francisco Corrales Morales
-
J'ai lemêmeproblème,pouvez-vousmontrer comment vous avez résolu ceproblème?I am having this same issue, could you show how you fixed this?
- 1
- 2014-03-08
- Jeremy
-
Une autre réponseestici: http://wordpress.stackexchange.com/a/131397 @JeremyAnother answer is here: http://wordpress.stackexchange.com/a/131397 @Jeremy
- 0
- 2014-03-26
- Francisco Corrales Morales
-
- 2013-07-27
Une réponse
0
signifie soit que l'actionn'estpas définie (dans les données ajax),soit que lafonction de rappel de l'actionestintrouvable.A
0
response means either that the action is not set (in the ajax data) or that the action's callback function cannot be found.-
Ouais,c'est labonne réponse.Tout ajouter die () à lafin fait,c'estterminer le script.Cette réponseesttechniquement correcte si vous voyez 0 ajouté à lafin de la sortie,mais sitout ce que vous obtenezest «0»,cela signifie que rienn'a été renvoyéet que vous avez uneerreur comme décrit dans cette réponse.Yeah, this is the correct answer. All adding die() to the end does, is terminate the script. That answer is technically correct if you're seeing 0 appended to the END of the output, however if all you get is '0', then it means nothing was returned, and you have an error as described in this answer.
- 2
- 2014-05-11
- Hybrid Web Dev
-
Ou vous venez dene rien renvoyerexprès dans lephp quigère la requête ajax.Assurez-vous defaire écho à quelque chose,sinon utilisez `.always`pour le capturer.Or you just returned nothing on purpose in the php that handles the ajax request. Be sure to echo something out, otherwise, use `.always` to capture it.
- 0
- 2015-10-26
- Solomon Closson
-
- 2014-01-27
Ce que vous devezfaireest d'ajouter
die();
à lafin de votrefonction.Découvrez la raisonet plusencoreici: http://codex.wordpress.org/AJAX_in_Plugins
Remarques:
- Vous devez
echo
quelque chose avant d'exécuterdie
.Cela évitera leserreurs de serveuret aidera lors du débogage.
What you have to do is add
die();
at the end of your function.See the reason and more here: http://codex.wordpress.org/AJAX_in_Plugins
Notes:
- You should
echo
something before executingdie
. This will prevent server errors, and will help when debugging.
-
C'est la réponse auproblème WP AJAX 0.This is the answer to the WP AJAX 0 problem.
- 10
- 2014-03-26
- Ben Racicot
-
Enfait,si vous ajoutez simplement `die ()` sansfaire écho à quelque chose,cela vous donnera également uneerreur de serveurinterne de 500,et retournera `0`pour` wp-admin/admin-ajax.php`.Vous devrieztoujoursenvoyer quelque choseen écho,même si vousne faites que définir des valeurset que rienne doit être renvoyé.Sinon,si vousne faites écho à rienet `die ()`,vous devez utiliser `.always ()`pour le capturer,carilne serapas dans `.done ()`,il sera dans `.fail ()`carilmeurt sans rien=500 Erreur.Actually, if you just add `die()` without echoing something out, this will also give you a 500 Internal Server Error, and return `0` for `wp-admin/admin-ajax.php`. You should always echo out something, even if you are just setting values and nothing is needed to be returned. Otherwise, if you echo nothing and `die()`, you have to use `.always()` to capture it, cause it will not be in `.done()`, it will be in `.fail()` because it dies without anything = 500 Error.
- 0
- 2015-10-26
- Solomon Closson
-
avez-vous des liens ou du code detravailpour quenouspuissionsjeter un coup d'œil?@SolomonClossondo you have some links, or working code, so we can take a look ? @SolomonClosson
- 0
- 2015-10-26
- Francisco Corrales Morales
-
Toutesmes réponses ont ététestées dans desenvironnements vivants.C'esttrès simple detester cela,faites simplement un `die ();` dans lafonction ajax dans lefichier `functions.php` sansfaire écho à quoi que ce soit avant cela,et appelez l'action via ajax,parexemple:` vartesting=$.ajax (...);testing.fail (fonction (réponse) {console.log ('Échec' + réponse);});testing.done (fonction (réponse) {console.log ('Succès' + réponse);});testing.always (function (response) {console.log ('Ajax Request complete:' + response);}); `All my answers have been tested in live environments. It's very simple to test this, just do a `die();` in the ajax function in the `functions.php` file without echoing out anything prior to this, and call the action via ajax, e.g.: `var testing = $.ajax( ... ); testing.fail(function(response) { console.log('Failed ' + response); }); testing.done(function(response) { console.log('Success ' + response); }); testing.always(function(response) { console.log('Ajax Request complete: ' + response); });`
- 0
- 2015-10-26
- Solomon Closson
-
Vous remarquerez,Échec apparaîtra,la réponse sera uneerreur de serveurinterne 500.You will notice, Failed will show up, the response will be a 500 Internal Server Error.
- 0
- 2015-10-26
- Solomon Closson
-
Ensuite,ajoutez un écho à lafonction PHPjuste avant de `die ();`,la réponse sera alors le résultat de l'écho.Than add an echo to the PHP function just before you `die();`, the response will than be the echo'd result.
- 0
- 2015-10-26
- Solomon Closson
-
J'aitesté cela avec `dataType` réglé sur` HTML`,je ne saispas si d'autrestypes de données renvoient quelque chose de différent,ou ce qui sepasse quandiln'estpas défini,cariltentera de deviner letype de données.IMO,ilestjustepréférable detoujours afficher quelque chose,même si c'est une chaîne qui dit «succès» ou «échec».I tested this with `dataType` set to `HTML`, not sure if other datatypes return something different tho, or what happens when it is not set, since it will attempt to take an educated guess at the data type. IMO, it's just best to output something always, even if it's a string that says 'success' or 'failure'.
- 0
- 2015-10-26
- Solomon Closson
-
- 2014-05-11
J'ai lemêmeproblème.Et l'a résolu.Vous devezenvoyer la variable "action" comme dans l'exemple:
var dataString = {lat: '55.56', lng: '25.35', action:'report_callback'}; $.ajax({ url: "http://domain.net/wp-admin/admin-ajax.php", type: "POST", //some times you cant try this method for sending action variable //action : 'report_callback', data:dataString, success: function(data){ console.log(data); }, error: function() { console.log("Error"); } });
Parce que dans wp-admin/admin-ajax.phpest legestionnaire de la variable d'action:
if ( empty( $_REQUEST['action'] ) ) {...} Line 26
I got same problem. And solved it. You must send "action" variable like in example:
var dataString = {lat: '55.56', lng: '25.35', action:'report_callback'}; $.ajax({ url: "http://domain.net/wp-admin/admin-ajax.php", type: "POST", //some times you cant try this method for sending action variable //action : 'report_callback', data:dataString, success: function(data){ console.log(data); }, error: function() { console.log("Error"); } });
Because in wp-admin/admin-ajax.php is handler for action variable:
if ( empty( $_REQUEST['action'] ) ) {...} Line 26
-
L'OP ___does___envoie unparamètre `action`.Bien que cela aitfonctionnépour vous,cen'étaitpas leproblèmeici.The OP ___does___ send an `action` parameter. While this may have worked for you it was not the problem here.
- 4
- 2014-05-11
- s_ha_dum
-
- 2016-03-29
J'aieu ceproblème aussi,et c'était lefait quej'utilisais
return
au lieu deecho
dansmafonction PHP.Le changerenecho
l'a corrigé.function doAjax() { $result = getPosts(); echo json_encode($result, true); die(); }
I had this problem too, and it was the fact that I was using
return
instead ofecho
in my PHP function. Changing it toecho
fixed it.function doAjax() { $result = getPosts(); echo json_encode($result, true); die(); }
-
- 2013-04-27
Essayez d'exécuter ce code sur la console
jQuery.post(ajaxurl, {action:'cleanlinks_ajax_get_post_data'}, function(response) { console.log (response); });
Jepeux voir quebeaucoup de chosesne vontpas dans votre code JavaScriptet c'estpeut-être la raison.
Try running this code on the console
jQuery.post(ajaxurl, {action:'cleanlinks_ajax_get_post_data'}, function(response) { console.log (response); });
I can see many things wrong about your JavaScript code and that might be the reason.
-
Ehbien,il arrive avecbeaucoup de choses queje ne comprendspasentièrement.Ce queje comprends: ReadyState 4,statut 200,responseText "0". Etpuisil arrive avec la réponse 0. S'il y a quelque chose de spécifique queje devrais chercherici? S'il y a desproblèmes avec le code,veuillez les signaleret jepeux lesexaminer,j'apprendstoujoursjQuery.Well it is coming up with a lot of things I dont fully understand. What I do understand: ReadyState 4, status 200, responseText "0". And then it comes up with the response 0. If there something in specific I should be looking for here? If there are issues with the code, please point them out and I can look into them, I am still learning jQuery.
- 0
- 2013-04-27
- Apina
-
avez-vous votre siteen ligne?do you have your site running live?
- 0
- 2013-04-27
- Omar Abid
-
Non,c'est localhostNo, it's localhost
- 0
- 2013-04-27
- Apina
-
Dur à dire.Pourriez-vousessayer d'exécuter console.info (ajaxurl);et voir ce que ça donne?Hard to tell. Could you try running console.info(ajaxurl); and see what it gives?
- 0
- 2013-04-27
- Omar Abid
-
/wp-admin/admin-ajax.phpest la réponse Éditer -- /wp-admin/admin-ajax.php indéfini/wp-admin/admin-ajax.php is the response edit -- /wp-admin/admin-ajax.php undefined
- 0
- 2013-04-27
- Apina
-
essayez de remplacer ajaxurlpar 'http://localhost/wp-admin/admin-ajax.php'et voyez ce que cela donnetry replacing ajaxurl with 'http://localhost/wp-admin/admin-ajax.php' and see what it gives
- 1
- 2013-04-27
- Omar Abid
-
Cen'estpas une solution directe,mais cette réponseest quelque chose qu'ilfaut absolument recouperpourtrouver une solution au PONot a direct solution, but this answer is something one should definitely cross-check for a solution to the OP
- 0
- 2016-01-07
- Nirav Zaveri
-
- 2016-07-18
J'aieu lemêmeproblème,pour le résoudrej'ai utilisé
wp_die()
à lafin demafonctionjuste après unecho
.N'oubliezpas detransmettre votre action à votre script.Pour être sûr,vérifiez si votrefonction doit utiliser
wp_ajax_nopriv
commewp_ajax
.I had the same problem, to fix it I used
wp_die()
at the end of my function just after anecho
. Don't forget to pass your action on your script.To be sure, check if your function has to use
wp_ajax_nopriv
likewp_ajax
. -
- 2017-04-27
Justepour référence,pourtous ceux qui arriventicien recherchant sur Google "la requête ajax renvoie 0": N'oubliezpas lorsque vous ajoutez une action ajax à laméthode de l'objetpour vous assurer que lemodificateur d'accès auxméthodesest
public
.add_action( 'wp_ajax_my_action', [$object, 'my_method']);
add_action
setait simplement s'ilne peutpas appeler votreméthodeen dehors de$object
.Just for reference, for anyone who get here googling "ajax request is returning 0": Remember when you add ajax action to object's method to be sure methods access modifier is
public
.add_action( 'wp_ajax_my_action', [$object, 'my_method']);
add_action
just silences if it can't call your method outside of$object
. -
- 2017-10-17
Si vousn'utilisezpas lafonction wp_localize_script ()pour définir l'url ajax,admin ajax renvoie 0. Jepense que c'est unbogue Wordpress.Voici unexemple:
wp_enqueue_script( 'search_js', get_template_directory_uri() . '/js/search.js', array( 'jquery' ), null, true ); wp_localize_script( 'search_js', 'ajaxurl', admin_url( 'admin-ajax.php' ) );
Lefichierjavascript (search.js):
$('#search_input').autocomplete({ source: function(request, response) { $.ajax({ type: 'POST', dataType: 'json', url: ajaxurl, data: 'action=my_custom_action_search&search_criteria=' + request.term, success: function(data) { response(data); }, error: function(errorThrown){ console.log(errorThrown); } }); }, minLength: 3 });
If you don't use wp_localize_script() function to set ajax url, admin ajax returns 0. I think it's Wordpress bug. Here's is an example :
wp_enqueue_script( 'search_js', get_template_directory_uri() . '/js/search.js', array( 'jquery' ), null, true ); wp_localize_script( 'search_js', 'ajaxurl', admin_url( 'admin-ajax.php' ) );
The javascript file (search.js) :
$('#search_input').autocomplete({ source: function(request, response) { $.ajax({ type: 'POST', dataType: 'json', url: ajaxurl, data: 'action=my_custom_action_search&search_criteria=' + request.term, success: function(data) { response(data); }, error: function(errorThrown){ console.log(errorThrown); } }); }, minLength: 3 });
-
- 2018-03-22
jQuery(document).ready(function(){ jQuery('.cl_link_buttons').val('id').click(function() { $.ajax({ type:'POST', url: ajaxurl, data: { action : 'ajax_filter', currentid : 'currentid' }, success: function (result) { console.log(result); $result = $(result); $result.fadeIn('7000'); $("#showresults").html(result); }, error: function (xhr, status) { alert("Sorry, there was a problem!"); }, complete: function (xhr, status) { $('#showresults').slideDown('slow') } }); }); });
//fonction de codephp
<?php add_action( 'wp_ajax_nopriv_ajax_filter', 'ajax_filter' ); add_action( 'wp_ajax_ajax_filter', 'ajax_filter' ); function ajax_filter(){ $date = isset($_POST['date']) ? $_POST['date'] : 0; echo $date; die(); } ?>
jQuery(document).ready(function(){ jQuery('.cl_link_buttons').val('id').click(function() { $.ajax({ type:'POST', url: ajaxurl, data: { action : 'ajax_filter', currentid : 'currentid' }, success: function (result) { console.log(result); $result = $(result); $result.fadeIn('7000'); $("#showresults").html(result); }, error: function (xhr, status) { alert("Sorry, there was a problem!"); }, complete: function (xhr, status) { $('#showresults').slideDown('slow') } }); }); });
//code function php
<?php add_action( 'wp_ajax_nopriv_ajax_filter', 'ajax_filter' ); add_action( 'wp_ajax_ajax_filter', 'ajax_filter' ); function ajax_filter(){ $date = isset($_POST['date']) ? $_POST['date'] : 0; echo $date; die(); } ?>
-
Le simplefait depublier du coden'estpasbon,pouvez-vousexpliquer ce quefait cemorceau de code?Just posting code is not good, can you please explain what this piece of code does?
- 0
- 2018-03-22
- bravokeyl
-
important: $ date=isset ($ _ POST ['date'])?$ _POST ['date']: 0; Et lafonction die ();important: $date = isset($_POST['date']) ? $_POST['date'] : 0; And function die();
- 0
- 2018-03-22
- Ngocheng
-
- 2019-11-10
Ceux qui obtiennent l'erreur 0 :),action=> 'action'
var data = { 'action': 'firmabilgilerikaydet', 'data': form_data }; $.post(ajaxurl, data, function(response) { alert(response); });
Those who get error 0 :), action => 'action'
var data = { 'action': 'firmabilgilerikaydet', 'data': form_data }; $.post(ajaxurl, data, function(response) { alert(response); });
-
- 2020-06-02
Si vous utilisez localhostet que votre code côté serveurphpest dans unfichier deplugin,connectez-vous d'abord autableau debord d'administrationet actualisez lapage duplugin.Deuxièmement,vérifiez si lepluginest activé.Accédezensuite aufrontend,actualisezet réessayez d'envoyer.
If you are using localhost and your php server side code is in a plugin file first login to admin dashboard and refresh the plugin page. Secondly, check if the plugin is activated. Then go to frontend and refresh and try sending again.
-
- 2017-03-22
TU ESSAYES: add_action ('init','ly_form_ajax_init'); function ly_form_ajax_init () { wp_register_script ('ly-form-ajax-script',plugins_url (). '/ly-form/js/ly-script.js',array ('jquery')); wp_enqueue_script ('ly-form-ajax-script'); wp_localize_script ('ly-form-ajax-script','ly_form_ajax_object',array ( 'ajaxurl'=> admin_url ('admin-ajax.php'), 'redirecturl'=> home_url (), 'loadingmessage'=> __ ('') )); } //L'actionest: contact_ajax add_action ('wp_ajax_contact_ajax','ma_fonction'); add_action ('wp_ajax_nopriv_contact_ajax','ma_fonction'); functionma_fonction () { ob_clean (); echo "http://sanvatvungcao.com"; wp_die (); } /** * Code court dans unepage comme celle-ci: [ly-form] * @paramtype $ atts * @paramtype $ content * Chaîne @return */ function ly_form_shortcode ($ atts,$ content="") { echo html_form_code (); } add_shortcode ('ly-form','ly_form_shortcode'); //Leformulaire HTML affichera, function html_form_code () { $ html=""; $ html.=''; $ html.=''; $ html.='
Họ đệm *
'; $ html.='Tên *
'; $ html.='Địa chỉ *
'; $ html.='Courriel *
'; $ html.='Nội dung * dg
'; $ html.=''; $ html.=''; $ html.=''; $ html.=''; return $ html; } ET ICIjs (ly-script.js): (fonction ($) { $ (document) .ready (fonction () { //Effectuer la soumission duformulaire AJAX $ ('form.ly-form-ex'). on ('soumettre',fonction (e) { e.preventDefault (); $ ('# chargement'). html ('chargement ...'); var dataString={action: 'contact_ajax'}; $ .ajax ({ tapez: "POST", url: ly_form_ajax_object.ajaxurl, données: dataString, succès:fonction (données) { $ ('# chargement'). html (données); }, erreur:fonction (errorThrown) { alert (errorThrown); } }); }); });//fin prêt }) (jQuery);J'espère que cela vous sera utile, Meilleur
YOU TRY: add_action('init', 'ly_form_ajax_init'); function ly_form_ajax_init() { wp_register_script('ly-form-ajax-script', plugins_url().'/ly-form/js/ly-script.js' , array('jquery')); wp_enqueue_script('ly-form-ajax-script'); wp_localize_script('ly-form-ajax-script', 'ly_form_ajax_object', array( 'ajaxurl' => admin_url('admin-ajax.php'), 'redirecturl' => home_url(), 'loadingmessage' => __('') )); } // Action is: contact_ajax add_action( 'wp_ajax_contact_ajax', 'my_function' ); add_action( 'wp_ajax_nopriv_contact_ajax', 'my_function' ); function my_function(){ ob_clean(); echo "http://sanvatvungcao.com"; wp_die(); } /** * Short code in page like this: [ly-form] * @param type $atts * @param type $content * @return string */ function ly_form_shortcode($atts, $content = "") { echo html_form_code(); } add_shortcode('ly-form', 'ly_form_shortcode'); //HTML Form will show, function html_form_code() { $html = ""; $html.= ''; $html.= ''; $html.= '
Họ đệm *
'; $html.= 'Tên *
'; $html.= 'Địa chỉ *
'; $html.= 'Email *
'; $html.= 'Nội dung * dg
'; $html.= ' '; $html.= ''; $html.= ''; $html.= ''; return $html; } AND HERE js (ly-script.js): ( function( $ ) { $(document).ready(function () { // Perform AJAX form submit $('form.ly-form-ex').on('submit', function(e){ e.preventDefault(); $('#loading').html('loading...'); var dataString = {action:'contact_ajax'}; $.ajax({ type: "POST", url: ly_form_ajax_object.ajaxurl, data: dataString, success: function (data) { $('#loading').html(data); }, error: function (errorThrown) { alert(errorThrown); } }); }); }); // end ready } )( jQuery );Hope it is helpful for you, Best
-
- 2013-09-23
Essayez d'ajouter uneinstruction
if
:function my_function(){ $id = $_POST['variation_id']; if(isset($_POST['variation_id'])) { //your coded function die(); } }// end function
Try adding an
if
statement:function my_function(){ $id = $_POST['variation_id']; if(isset($_POST['variation_id'])) { //your coded function die(); } }// end function
-
Comment cela résoudrait-il leproblème?Notez la réponse acceptéeet le code d'origine.How would that solve the problem? Note the accepted answer and the original code.
- 1
- 2013-09-23
- fuxia
Je suis relativementnouveau dansjQueryet AJAXen particulier. J'ai unpetit problème avec la valeur de retourtoujours égale à 0,même sije pense que c'esten fait lemessage de réussiteet qu'ilne renvoie rien.
J'aiparcouru le verset Googleet j'ai lafonction die () sur le rappel PHPet jepense que les add_actions sont correctes.
Jetravaille sur un hôte local,même sije doute que cela l'affecteet tout celaest dans l'administrateur,pas dans lefront-end. J'ai également vérifié que lejsestmisen file d'attenteet localisé.
Je reçois unmessage 200 OK dans la zone de développement Chrome.
J'ai égalementtesté l'AJAX debase de http://codex.wordpress.org/AJAX_in_Plugins et il a également renvoyé 0,ce quime faitme demander s'il s'agit d'autre chose que le code décrit ci-dessous.
En cemoment,j'essayejuste de luifaire renvoyer quelque chose aujQuery. Toute aide serait appréciée.
LejQuery
Le PHP