Ajax não está funcionando é esperado (Retorna 0)

Estou tentando “POST” os dados do meu formulário através do ajax para um database mysql. Este código está ligado à ação “after_setup_theme”:

add_action("wp_ajax_ajax_anmeldung", "ajax_anmeldung"); add_action("wp_ajax_nopriv_ajax_anmeldung", "ajax_anmeldung"); function ajax_anmeldung() { echo " alert('hey'); "; die(); } 

E este é o código JS que o chama:

 $('#teilnahme_form').submit(function(e){ e.preventDefault(); var name = document.getElementById("name").value; jQuery.ajax({ type:"POST", url: window.ajaxurl, data: { action: "ajax_anmeldung", name : name }, success:function(data){ alert(data); } }); }); 

Quando corro isso, recebi um “0”, nada mais.

Quando eu tentei: http://my-domain.com/wp-admin/admin-ajax.php?action=ajax_anmeldung Eu também recebo um “0”.

Eu leio todos os outros publicar aqui em torno deste tópico, mas nada parecia me ajudar, ou eu negligenciei algo realmente importante.

Felicidades

Solutions Collecting From Web of "Ajax não está funcionando é esperado (Retorna 0)"

Por favor, tente isso:

Adicione o seguinte nas funções do seu tema.php

 add_action( 'init', 'tnc_aj_scripts' ); function tnc_aj_scripts() { wp_register_script( "ajax_anmeldung_script", get_template_directory_uri(). '/my-ajax.js', array('jquery'), '1.0', true); wp_localize_script( 'ajax_anmeldung_script', 'mYAjax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ))); wp_enqueue_script( 'jquery' ); wp_enqueue_script( 'ajax_anmeldung_script' ); } add_action("wp_ajax_ajax_anmeldung", "ajax_anmeldung"); add_action("wp_ajax_nopriv_ajax_anmeldung", "ajax_anmeldung"); function ajax_anmeldung() { $result['one'] = 'Hey'; $result = json_encode($result); echo $result; die(); } 

Crie um arquivo .js no seu diretório de temas chamado my-ajax.js e coloque o seguinte dentro desse arquivo:

 jQuery('#teilnahme_form').submit(function(e){ e.preventDefault(); var name = document.getElementById("name").value; jQuery.ajax({ type:"post", dataType : "json", url : mYAjax.ajaxurl, data: { action: "ajax_anmeldung", name : name }, success:function(data){ alert(data.one); } }); }); 

Ao usar “POST” como tipo de solicitação, exclua “ação” em param de dados e anexe-o à url.

 $('#teilnahme_form').submit(function(e){ e.preventDefault(); var name = document.getElementById("name").value; jQuery.ajax({ type:"POST", url: window.ajaxurl + '?action=ajax_anmeldung', data: { name : name }, success:function(data){ alert(data); } }); });