WordPress admin-ajax.php总是返回0


WordPress admin-ajax.php always return 0

我写了WordPress ajax插件,但admin-ajax.php总是返回0,不起作用。

这是我的代码:

add_action( 'wp_ajax_example_ajax_request', 'example_ajax_request' );
add_action( 'wp_ajax_nopriv_example_ajax_request','example_ajax_request' );
wp_enqueue_script( 'test', plugins_url( 'actions/js/test.js', __FILE__ ), array('jquery'), '1.0', true );
wp_localize_script( 'test', 'ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
function example_ajax_request() {
    echo"d";
    die();
}

我的javascrip test.js文件:

jQuery(document).ready(function($) {
    var fruit = 'Banana';
    $.ajax({
        url: ajaxurl,
        data: {
            'action':'example_ajax_request',
            'fruit' : fruit
        },
        success:function(data) {
            console.log(data);
        },
        error: function(errorThrown){
            console.log(errorThrown);
        }
    });
});

这是怎么回事?

谢谢。

查询脚本中有一个错误:

jQuery(document).ready(function($) {
    var fruit = 'Banana';
    $.ajax({
        url: ajax_object.ajax_url, // =================> HERE is the problem
        data: {
            'action':'example_ajax_request',
            'fruit' : fruit
        },
        success:function(data) {
            console.log(data);
        },
        error: function(errorThrown){
            console.log(errorThrown);
        }
    });
});

您需要将ajax_objectwp_localize_script()中定义的ajax_url一起使用,方法如下:

url: ajax_object.ajax_url,

参考:

  • Wordpress使用Wordpress将ajax值传递到特定页面