Admin Ajax está regresando 0
-
-
¿Ha verificado que ajaxurlesté configurado correctamente?Have you verified that ajaxurl is set properly?
- 1
- 2013-04-27
- Andrew Bartel
-
¿La consola de sunavegadormuestra algúnerror?Sies así,¿Que son?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 ()`pareceextraño.`jQuery('.cl_link_buttons').val('id').click(function()` looks odd.
- 2
- 2013-04-27
- fuxia
-
Andrew,sí,creo quees correcto,la URL de solicituden Chrome Inspectormuestra dominio/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 No semuestranerrores@s_ha_dum No errors showing
- 0
- 2013-04-27
- Apina
-
@toscho Quizásparezcaextraño,era la únicaformaen quepodíapensaren obtener la ID de loselementos al hacer clic,y haceeltrabajo,el códigotambiénmuestra quetiene esos datos,nuevamenteelproblemaes obtener una respuesta delphp.@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
-
Consultetambién [cómo depurar AJAX con 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
-
Noesnecesario "devolverfalso".Si usajQuery,use http://api.jquery.com/event.preventdefault/en su lugar.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 respuestas
- votos
-
- 2013-04-28
Así que lo resolví.NoerajQuery comotal,aunque lo hemejorado,era la ubicación de lafunción de devolución de llamada.Lomoví al archivoprincipal del complemento yfuncionó.
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.
-
¿Puedesmostrar cómo lo hiciste?can you show how did you do it ?
- 4
- 2014-01-27
- Francisco Corrales Morales
-
Estoyteniendoelmismoproblema,¿podríamostrarnos cómo lo solucionó?I am having this same issue, could you show how you fixed this?
- 1
- 2014-03-08
- Jeremy
-
Otra respuestaestá aquí: 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
Una respuesta
0
significa que la acciónnoestá configurada (en los datos ajax) o queno sepuedeencontrar lafunción de devolución de llamada de la acción.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.-
Sí,estaes la respuesta correcta.Todo lo que se hace al agregar die () alfinalesterminarel script.Esa respuestaestécnicamente correcta si ve un 0 adjunto al FINAL de la salida; sinembargo,sitodo lo que obtienees '0',significa queno se devolviónada ytiene unerror como se describeen esta respuesta.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
-
O simplementeno devolviónada apropósitoen elphp quemaneja la solicitud ajax.Asegúrese de hacereco de algo,de lo contrario,use `.always`para capturarlo.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
Lo quetiene que haceres agregar
die();
alfinal de sufunción.Veaelmotivo ymás aquí: http://codex.wordpress.org/AJAX_in_Plugins
Notas:
- Debe
echo
algo antes deejecutardie
.Estoevitaráerrores del servidor y ayudará durante la depuración.
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.
-
Estaes la respuesta alproblema de WP AJAX 0.This is the answer to the WP AJAX 0 problem.
- 10
- 2014-03-26
- Ben Racicot
-
En realidad,si solo agrega `die ()` sin hacereco de algo,estotambién le dará un Error de servidorinterno 500 y devolverá `0`para` wp-admin/admin-ajax.php`.Siempre debe hacereco de algo,incluso si soloestá configurando valores ynoesnecesario devolvernada.De lo contrario,sino repitenada y `die ()`,tiene que usar `.always ()`para capturarlo,porquenoestaráen `.done ()`,estaráen `.fail ()`porquemuere sinnada=500 Error.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
-
¿Tiene algunosenlaces o código detrabajopara quepodamosechar un vistazo?@SolomonClossondo you have some links, or working code, so we can take a look ? @SolomonClosson
- 0
- 2015-10-26
- Francisco Corrales Morales
-
Todasmis respuestas se hanprobadoen entornosen vivo.Esmuy simpleprobaresto,simplemente haga un `die ();`en lafunción ajaxen el archivo `functions.php` sin hacereco denada antes deesto,y llame a la acción através de ajax,porejemplo:` vartesting=$.ajax (...);testing.fail (función (respuesta) {console.log ('Falló' + respuesta);});testing.done (función (respuesta) {console.log ('Éxito' + respuesta);});testing.always (función (respuesta) {console.log ('Solicitud Ajax completa:' + respuesta);}); `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
-
Notará,aparecerá Fallido,la respuesta será un 500 Internal Server Error.You will notice, Failed will show up, the response will be a 500 Internal Server Error.
- 0
- 2015-10-26
- Solomon Closson
-
Luego agregue uneco a lafunción PHPjusto antes de `morir ();`,la respuesta seráel resultado deleco.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
-
Probéesto con `dataType` configuradoen` HTML`,aunquenoestoy seguro de si otrostipos de datos devuelven algo diferente,o qué sucede cuandonoestá configurado,ya queintentará hacer una suposiciónfundamentada sobreeltipo de datos.Enmi opinión,esmejorgenerar algo siempre,incluso sies una cadena que dice "éxito" o "fracaso".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
Tengoelmismoproblema.Y lo resolvió.Debeenviar la variable "acción" comoen elejemplo:
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"); } });
Porqueen wp-admin/admin-ajax.php hay un controladorpara la variable de acción:
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
-
El OP ___no___envía unparámetro de `acción`.Sibien estopuede haberfuncionadopara usted,nofueelproblema aquí.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
Yotambiéntuveesteproblema,yfueel hecho de queestaba usando
return
en lugar deecho
en mifunción PHP.Cambiarlo aecho
lo solucionó.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
Intenteejecutareste códigoen la consola
jQuery.post(ajaxurl, {action:'cleanlinks_ajax_get_post_data'}, function(response) { console.log (response); });
Puedo vermuchas cosasmalen su código JavaScript yesapodría ser la razón.
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.
-
Bueno,viene conmuchas cosas quenoentiendo deltodo.Lo queentiendo: ReadyState 4,estado 200,responseText "0". Y luego aparece la respuesta 0. ¿Si hay algoen específico que deberíabuscar aquí? Si hayproblemas conel código,indíquelos ypuedoinvestigarlos,todavíaestoy aprendiendojQuery.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
-
¿Tiene su sitiofuncionandoen vivo?do you have your site running live?
- 0
- 2013-04-27
- Omar Abid
-
No,es localhostNo, it's localhost
- 0
- 2013-04-27
- Apina
-
Difícil de decir.¿Podríaintentarejecutar console.info (ajaxurl);y ver lo que da?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.phpes la respuesta editar - /wp-admin/admin-ajax.php indefinido/wp-admin/admin-ajax.php is the response edit -- /wp-admin/admin-ajax.php undefined
- 0
- 2013-04-27
- Apina
-
intente reemplazar ajaxurl con 'http://localhost/wp-admin/admin-ajax.php' y vea lo que datry replacing ajaxurl with 'http://localhost/wp-admin/admin-ajax.php' and see what it gives
- 1
- 2013-04-27
- Omar Abid
-
Noes una solución directa,peroesta respuestaes algo que definitivamente se debe verificarparaencontrar una solución al OPNot 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
Tuveelmismoproblema,para solucionarlo usé
wp_die()
alfinal demi funciónjusto después de unecho
.No olvidepasar su acciónen su secuencia de comandos.Paraestar seguro,verifique si sufunción debe usar
wp_ajax_nopriv
comowp_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
Solo como referencia,para cualquiera que llegue aquíbuscandoen Google "la solicitud ajax devuelve 0": Recuerde cuando agrega una acción ajax almétodo del objetopara asegurarse de queelmodificador de acceso a losmétodos sea
public
.add_action( 'wp_ajax_my_action', [$object, 'my_method']);
add_action
simplemente se silencia sinopuede llamar a sumétodofuera 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
Sino usa lafunción wp_localize_script ()para configurar la URL de ajax,admin ajax devuelve 0. Creo quees unerror de Wordpress.Aquítienes unejemplo:
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' ) );
El archivojavascript (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') } }); }); });
//función de códigophp
<?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(); } ?>
-
Publicar códigonoesbueno,¿podríaexplicar qué haceeste código?Just posting code is not good, can you please explain what this piece of code does?
- 0
- 2018-03-22
- bravokeyl
-
importante: $fecha=isset ($ _ POST ['fecha'])?$ _POST ['fecha']: 0; Y lafunciónmuere ();important: $date = isset($_POST['date']) ? $_POST['date'] : 0; And function die();
- 0
- 2018-03-22
- Ngocheng
-
- 2019-11-10
Aquellos que obtienenelerror 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
Siestá utilizando localhost y su código del lado del servidorphpestáen un archivo de complemento,primeroinicie sesiónen elpanel de administración y actualice lapágina del complemento.En segundo lugar,compruebe siel complementoestá activado.Luego vaya a lainterfaz y actualicee intenteenviarnuevamente.
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
USTED INTENTA: 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'=> __ ('') )); } //La acciónes: contact_ajax add_action ('wp_ajax_contact_ajax','mi_función'); add_action ('wp_ajax_nopriv_contact_ajax','mi_función'); functionmy_function () { ob_clean (); echo "http://sanvatvungcao.com"; wp_die (); } /** * Código cortoen unapágina comoesta: [ly-form] * @paramtype $ atts * @paramtype $ content * @return string */ function ly_form_shortcode ($ atts,$ content="") { echo html_form_code (); } add_shortcode ('ly-form','ly_form_shortcode'); //Semostraráelformulario HTML, function html_form_code () { $ html=""; $ html.=''; $ html.=''; $ html.='
Họ đệm *
'; $ html.='Tên *
'; $ html.='Địa chỉ *
'; $ html.='Correoelectrónico *
'; $ html.='Nộiestiércol * dg
'; $ html.=''; $ html.=''; $ html.=''; $ html.=''; return $ html; } Y AQUÍjs (ly-script.js): (función ($) { $ (documento) .ready (function () { //Realizarenvío deformulario AJAX $ ('form.ly-form-ex'). on ('enviar',función (e) { e.preventDefault (); $ ('# cargando'). html ('cargando ...'); var dataString={action: 'contact_ajax'}; $ .ajax ({ tipo: "POST", url: ly_form_ajax_object.ajaxurl, datos: dataString, éxito:función (datos) { $ ('# cargando'). html (datos); }, error:function (errorThrown) { alert (errorThrown); } }); }); });//fin listo }) (jQuery);Espero quete sea útil, Mejor
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
Intente agregar unainstrucción
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
-
¿Cómo solucionaríaesoelproblema?Anote la respuesta aceptada yel código original.How would that solve the problem? Note the accepted answer and the original code.
- 1
- 2013-09-23
- fuxia
Soy relativamentenuevoen jQuery y AJAXen particular. Tengo unpequeñoproblema conel valor de retorno que siemprees 0,aunque creo queesteesen realidadelmensaje de éxito yno devuelvenada.
He rastreado Google-verse ytengo lafunción die ()en la devolución de llamada de PHP y creo que las add_actions son correctas.
Estoytrabajandoen un host local,aunque dudo queeso lo afecte ytodoestoestáen el administrador,noen lainterfaz. También verifiqué queeljsestéen cola y localizado.
Recibo unmensaje de 200 OKen el área de desarrolladores de Chrome.
Tambiénprobéel AJAXbásico de http://codex.wordpress.org/AJAX_in_Plugins ytambién devolvió 0,lo queme hacepreguntarme si setrata de algo diferente al código que se describe a continuación.
Enestemomento soloestoytratando de hacer queenvíe algo ajQuery. Se agradecería cualquier ayuda.
EljQuery
El PHP