[WordPress] ワードプレス私自身のプラグイン: ajax は常に 0 を返します

スポンサーリンク

質問

ajax を使用するプラグインを書いた。(まい記録) の場合、プラグインはできる必要がありますデータベースの値を削除します。

私の問題は、ajax 応答は常に NULL し、私はなぜ考えを持ってない!私 googled の時間と私は、どんな形であれを試してみました.ここでは、私のスクリプト:

function my_script_enqueuer(){

    global $post; 
    $content = $post->post_content;
    if(has_shortcode($content, 'shortcode')){
        wp_register_script('my_script', 
            WP_PLUGIN_URL.'/my-plugin/js/my-plugin.js',
            array('jquery'));

        wp_localize_script('my_script',
            'myAjax', 
            array( 'ajaxurl' => admin_url('admin-ajax.php')));

        wp_enqueue_script('jquery');
        wp_enqueue_script('my_script');
    } 
}

add_action( 'wp_enqueue_scripts', 'my_script_enqueuer' );

add_action('wp_ajax_del_value', 'del_value');
add_action('wp_ajax_nopriv_del_value', 'del_value');

function del_value(){

    $val = $_POST['val'];
    echo $val;

    //$wpdb->...an so on
    die();
}

とここで私の ajax (my_plugin.js)

jQuery(document).ready( function(){
jQuery(document).on('click', '.delval',  function($){   

    var val = this.id;

        jQuery.ajax({
                    type: "POST",
                    url: myAjax.ajaxurl,
                    data: {action:"del_value", val: val},
                    success: function(response){
                        if(response.type = "success"){
                            console.log(response);
                        }else{
                            console.log("Error");
                        }
                    }

                });
});

});

答え

ここのコードで問題はないです。紹介されている例を重複して、それは私のために働いた

とき私は、それは通常 2 つの問題の 1 つに煮詰めている過去にこのような問題に実行した:

  1. ブラウザーは、これは、クロス ドメイン要求を考えています。 解決方法: myAjax.ajaxurl のドメインにあなたのブラウザーの場所バーで参照してくださいドメインが一致することを確認
  2. jQuery の

  3. は、応答の mime タイプを正しく解釈されていません。 ない戻り値の型を指定しています。 解決策: 試すデータ型を含む:”text”キー/ペア jQuery.ajax 通話;または json 応答のエンコードを確認します

http://stackoverflow.com/questions/32574526/wordpress-my-own-plugin-ajax-always-returns-0

スポンサーリンク

Leave a Reply