2016-10-27 3 views
0

Mein AJAX Post gibt immer 0, und ich habe keine Ahnung, warum PHPAjax immer wiederkehr 0

add_action('wp_enqueue_scripts','enable_signup_scripts'); 
function enable_signup_scripts() { 
    wp_enqueue_script('signup',get_template_directory_uri().'/signup/script.js' , array('jquery')); 
    wp_localize_script('signup', 'daten', array('ajaxurl' => admin_url("admin-ajax.php", null))); 
}; 
add_action('wp_ajax_createuser','createuser'); 
add_action('wp_ajax_nopriv_createuser','createuser'); 
function createuser() {echo 'hello';}; 

script.js

$.post(
    daten.ajaxurl, 
    { 
     "action": "createuser", 
    }, 
    function(data){ 
     alert(data) 
    } 
) 

jemand das Problem Kennt?

+1

[Docs] (https://codex.wordpress.org/AJAX_in_Plugins) sagen 'Darüber hinaus, wenn die Anforderung erfolgreich ist, aber die Aktion Ajax nicht ein Wordpress-Haken mit add_action ('wp_ajax_ (Aktion definiert entsprechen) ', ...) oder add_action (' wp_ajax_nopriv_ (action) ', ...), dann antwortet admin-ajax.php 0.' Findet die add_action für jede Anfrage statt? – drew010

+0

@ drew010 Ich habe die Ajax-Aktion in ein Plugin kopiert und es hat funktioniert. Weißt du, ob es möglich ist, sie in einem Thema arbeiten zu lassen? –

+1

@MichaelCool, ja, Sie können diesen Hook innerhalb der functions.php Ihres Themes definieren. –

Antwort

1

Ich denke, Sie vermissen die wp_die() -Funktion in Ihrem Code, wp_die() ist Pflicht, wie unten Code zu verwenden.

function createuser() { 
    echo 'hello'; 
    wp_die(); 
    }; 
+0

Ich habe die Ajax-Aktion in ein Plugin kopiert und es hat funktioniert. Weißt du, ob es möglich ist, sie in einem Thema arbeiten zu lassen? –

+1

Ich glaube nicht, dass wp_die(); für wordpress ajax zwingend ist –