2016-10-27 18 views
0

私のAJAXポストは常に0を返し、私は考え、なぜ PHPAjaxは常に返す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) 
    } 
) 

を持っていない誰もが問題を知っていますか?

+1

[ドキュメント](https://codex.wordpress.org/AJAX_in_Plugins)要求が成功した場合、さらに '言うが、Ajaxのアクションはadd_action( 'wp_ajax_(アクション)で定義されたWordPressのフックと一致していません'、...)またはadd_action(' wp_ajax_nopriv_(action) '、...)、admin-ajax.phpは0に応答します。 '要求ごとにadd_actionが起きていますか? – drew010

+0

@ drew010私はプラグインにajaxアクションをコピーしました。あなたはそれらをテーマで動作させることが可能かどうか知っていますか? –

+1

@MichaelCool、はい、テーマのfunctions.phpの中にこのフックを定義することができます。 –

答えて

1

あなたのコードにwp_die()関数がないと思いますが、wp_die()は以下のコードのように強制的に使用します。

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

プラグインにajaxアクションをコピーしていました。あなたはそれらをテーマで動作させることが可能かどうか知っていますか? –

+1

私は 'wp_die(); 'がwordpress ajaxのために義務的だとは思わない –

関連する問題