Admin Ajax está retornando 0
-
-
Vocêjá verificou que Ajaxurlestá definido corretamente?Have you verified that ajaxurl is set properly?
- 1
- 2013-04-27
- Andrew Bartel
-
O seu console donavegadormostra algumerro?Se sim,o queeles são?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'). Cliqueem (Função ()` Pareceestranho.`jQuery('.cl_link_buttons').val('id').click(function()` looks odd.
- 2
- 2013-04-27
- fuxia
-
Andrew,sim,eu acredito queestá correto,o URL de solicitaçãonoinspetor Chromeestámostrando domínio/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 semerrosmostrando@s_ha_dum No errors showing
- 0
- 2013-04-27
- Apina
-
@Toscho Talvezpareçaestranho,foi a únicamaneira queeupoderiapensarem obter o ID deelementosno clique,e elefaz otrabalho,o códigotambémmostra quetem que os dados,novamenteproblema é obter uma resposta do PHP.@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
-
Vejatambém [Como depurar Ajax com 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
-
Não hánecessidade de "retornarfalse".Seestiver usando ojQuery,use http://api.jquery.com/event.preventdefault/em vez disso.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 respostas
- votos
-
- 2013-04-28
Entãoeu resolvi.Nãofoi ojQuery comotal,emboratenhamelhoradoisso,foi a colocação dafunção de volta.Eumovipara o arquivoprincipal doplugine funcionou.
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.
-
Vocêpodemostrar como vocêfezisso?can you show how did you do it ?
- 4
- 2014-01-27
- Francisco Corrales Morales
-
Estoutendoessemesmoproblema,vocêpoderiamostrar como você consertouisso?I am having this same issue, could you show how you fixed this?
- 1
- 2014-03-08
- Jeremy
-
Outra respostaestá aqui: http://wordpress.stackexchange.com/a/131397 @Jeremy.Another answer is here: http://wordpress.stackexchange.com/a/131397 @Jeremy
- 0
- 2014-03-26
- Francisco Corrales Morales
-
- 2013-07-27
Um
0
resposta significa que a açãonãoestá definida (nos dados do AJAX) ou que afunção de retorno de chamada da açãonãopode serencontrada.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.-
Sim,esta é a resposta correta.Todos adicionam die () aofinal,éencerrar o script.Essa resposta étecnicamente correta se vocêestá vendo 0 anexado aofinal da saída,noentanto,setudo que você obtiver é '0',não significa quenadafoi retornado,e vocêtem umerro conforme descritonesta resposta.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 você acabou de retornarnada depropósitono PHP que lida com opedido do Ajax.Certifique-se deecoar algo,caso contrário,usar ".always"para captá-lo.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
O que vocêprecisafazer é adicionar
die();
nofinal da suafunção.veja omotivoe mais aqui: http://codex.wordpresspress.org/ajax_in_plugins
.Notas:
- Você deve
echo
algo antes deexecutardie
.Issoimpediráerros do servidore ajudará a depurar.
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.
-
Esta é a respostapara oproblema do WP Ajax 0.This is the answer to the WP AJAX 0 problem.
- 10
- 2014-03-26
- Ben Racicot
-
Na verdade,se você acabou de adicionar `morrer ()` semecoar algo,issotambém lhe dará umerro de servidorinterno de 500e retornará `0`para` wp-admin/admin-ajax.php`.Você deve sempreecoar algo,mesmo queesteja apenas definindo valorese nada sejanecessáriopara ser devolvido.Caso contrário,se vocêecoarnadae morrer () ",vocêtem que usar" .always () "para capturá-lo,porquenão seráem" .done () ",seráem" .fail () "Porquemorre semnada=500erro.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
-
Vocêtem alguns links ou código detrabalho,para quepossamos dar uma olhada?@Solomonclosson.do you have some links, or working code, so we can take a look ? @SolomonClosson
- 0
- 2015-10-26
- Francisco Corrales Morales
-
Todas asminhas respostasforamtestadasem ambientes ao vivo.Émuito simplestestarisso,bastafazer um 'morrer (); `nafunção Ajaxno arquivo`funções.php` semecoar qualquer coisa antes disso,e chamar a ação via Ajax,porexemplo: `vartesting=$.ajax (...);testing.fail (função (resposta) {console.log ('falhou' + resposta);});testing.done (função (resposta) {console.log ('sucesso' + resposta);});testing.always (função (resposta) {console.log ('AJAX solicitação completa:' + resposta);}); `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
-
Vocênotará,falhou seráexibido,a resposta será umerro de servidorinterno de 500.You will notice, Failed will show up, the response will be a 500 Internal Server Error.
- 0
- 2015-10-26
- Solomon Closson
-
Do que adicionar umeco àfunção PHP antes de vocêmorrer (); `,a resposta será do resultado doeco.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
-
Testieiisso com "DataType" definido como "HTML",não com certeza se outrostipos de dados retornarem algo diferente,ou o que acontece quandonãoestá definido,uma vez quetentará adivinhar um adivinhamentoeducadonotipo de dados.IMO,émelhorparaproduzir algo sempre,mesmo que seja uma string que diz "sucesso" ou "fracasso".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
Eutenho omesmoproblema.E resolvido.Você deveenviar "ação" variável comonoexemplo:
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"); } });
Porqueno WP-Admin/Admin-Ajax.php é omanipuladorpara a variável de ação:
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
-
O op ___does___ Envie umparâmetro 'Ação'.Emboraissopossaterfuncionadopara você,nãofoi oproblema aqui.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
Eutambémtinhaesseproblema,e foi ofato de queeuestava usando
devolução
em vez deecho
naminhafunção PHP.Alterando-oparaEcho
Certo.função doajax () { $ result=getposts (); echojson_encode (resultado $,verdadeiro); morrer(); }
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
Tenteexecutareste códigono console
jQuery.post(ajaxurl, {action:'cleanlinks_ajax_get_post_data'}, function(response) { console.log (response); });
Euposso vermuitas coisaserradas sobre o seu código JavaScripte quepode ser omotivo.
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.
-
Bem,está chegando commuitas coisas queeunãoentendo completamente.O queeuentendo: ReadyState 4,Status 200,ResponseText "0". Eentãoele surge com a resposta 0. Se há algoem específico,eu deveriaestarprocurandopor aqui? Se houverproblemas com o código,porfavor,aponte-ose euposso olharparaeles,aindaestou aprendendojQuery.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
-
Vocêtem seu site correndo ao vivo?do you have your site running live?
- 0
- 2013-04-27
- Omar Abid
-
Não,é localhostNo, it's localhost
- 0
- 2013-04-27
- Apina
-
Difícil dizer.Vocêpoderiatentarexecutar console.info (Ajaxurl);e veja o que dá?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.php é a resposta 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
-
Tente substituir Ajaxurl com 'http://localhost/wp-admin/admin-ajax.php'e veja o que dátry replacing ajaxurl with 'http://localhost/wp-admin/admin-ajax.php' and see what it gives
- 1
- 2013-04-27
- Omar Abid
-
Não é uma solução direta,masesta resposta é algo que se deve definitivamente verificar uma soluçãopara o 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
Eutive omesmoproblema,para consertá-lo Eu usei
wp_die ()
Nofinal daminhafunção logo após umEcho
.Não seesqueça depassar sua açãono seu script.Parater certeza,verifique se suafunçãotem que 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
Apenaspara referência,para qualquer um que receba aquigoogling "opedido do AJAXestá retornando 0": Lembre-se quando você adiciona ação AJAX aométodo do objetoparater certeza de que o Modificador de Acesso de Métodos é
Public
.add_action ('wp_ajax_my_action',[$ Object,'my_method']);
add_action
apenas silêncio senãopuder ligarpara o seumétodofora 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
Se vocênão usar afunção wp_localize_script ()para definir o AJAX URL,Admin Ajax retorna 0. Eu acho que é obug do WordPress.Aquiestá umexemplo:
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' ) );
O arquivo JavaScript (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') } }); }); });
//função de código 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(); } ?>
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(); } ?>
-
Bastapostar códigonão ébom,vocêpodeporfavorexplicar o queestapeça de códigofaz?Just posting code is not good, can you please explain what this piece of code does?
- 0
- 2018-03-22
- bravokeyl
-
Importante: $ data=isiset ($ _post ['data'])?$ _Post ['data']: 0; Efunçãomorrer ();important: $date = isset($_POST['date']) ? $_POST['date'] : 0; And function die();
- 0
- 2018-03-22
- Ngocheng
-
- 2019-11-10
aqueles que recebemerro 0 :),ação=> 'ação'
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
Se vocêestiver usando localhoste seu código lateral do PHP Serverestiverem um arquivo depluginprimeiro loginpara o Dashboard Admine atualize apágina doplugin.Em segundo lugar,verifique se oplug-in é ativado.Então vápara ofrontende atualizee tenteenviarnovamente.
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
VOCÊ TENTA: add_action ('init','ly_form_ajax_init'); função ly_form_ajax_init () { wp_register_script ('ly-form-Ajax-script',plugins_url (). '/ly-form/js/ly-script.js',matriz ('jquery')); wp_enqueue_script ('ly-form-Ajax-script'); wp_localize_script ('ly-form-Ajax-script','ly_form_ajax_object',matriz ( 'Ajaxurl'=> admin_url ('admin-ajax.php'), 'redirecturl'=> home_url (), 'LoadingMessage'=> __ ('') )); } //Ação é: contact_ajax add_action ('wp_ajax_contact_ajax','my_function'); add_action ('wp_ajax_nopriv_contact_ajax','my_function'); funçãomy_function () { ob_clean (); Echo "http://sanvatvungcao.com"; wp_die (); } /** * Código curtonapágina comoeste: [ly-form] * @paramtipo $ atts * @paramtipo $ conteúdo * string @return. */ função ly_form_shortcode ($ ATTS,$ Content="") { echo html_form_code (); } add_shortcode ('Form Form','Ly_Form_Shortcode'); //formulário HTMLmostrará, função html_form_code () { $ html=""; $ html.=''; $ html.=''; $ html.='
họ ệệm *
'; $ html.='tên *
'; $ html.='ịịa chỉ *
'; $ HTML.='E-mail *
'; $ html.='nộiesterco * dg
'; $ html.=''; $ html.=''; $ html.=''; $ html.=''; Retornar $ HTML; } E aquijs (ly-script.js): (função ($) { $ (documento) .REady (função () { //executar oformulário AJAX Enviar $ ('form.ly-form-ex'). ON ('enviar',função (e) { e.preventdefault (); $ ('# carregando'). HTML ('carregar ...'); var DataString={ação: 'contact_ajax'}; $ .AJAX ({ Tipo: "Postar", URL: ly_form_ajax_object.ajaxurl, Dados: DataString, sucesso:função (dados) { $ ('# carregando'). HTML (dados); }, Erro: Função (errorthrown) { alerta (erryrown); } }); }); });//fim pronto }) (jquery);Espero que seja útilpara você, Melhor
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
Tente adicionar um
if
declaração: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
-
Comoisso resolveria oproblema?Observe a resposta aceitae o código original.How would that solve the problem? Note the accepted answer and the original code.
- 1
- 2013-09-23
- fuxia
Eu sou relativamentenovopara JQuerye Ajaxem particular. Eutenho umpequenoproblema com o valor de retorno sempre sendo 0,emboraeu acho queesta é realmente amensagem de sucessoe nãoestá retornandonada.
Eu limpei o verso do Googlee tenho afunção Die ()no retorno de chamada PHPe acredito que as add_actionsestão corretas.
Euestoutrabalhandoem um host local,embora duvido que afetee isso sejatudono administrador,nãofront-end. Eutambém verifiquei que o JS éfechadoe localizado.
Eu recebo umamensagem 200 OKna área de desenvolvedor do Chrome.
Eutambémtestei o Ajaxbásico de http://codex.wordpress.org/ajax_in_plugins e também retornou 0,o queme fazpensar se é algo diferente do código descrito abaixo.
Agoraestou apenastentandofazer com queeleenvie algo de voltapara ojQuery. Qualquer ajuda seria apreciada.
ojquery
ophp