Wordpress管理员插件AJAX调用(ajaxurl)一直返回0

时间:2017-02-24 14:51:04

标签: php jquery ajax wordpress

在上周的问题上,我一直在破坏我的球。当然,我进行了搜索并遇到了描述类似问题的人的帖子,但所讨论的答案和解决方案似乎都没有解决我的问题。

我希望我的Wordpress插件能够利用内置的Wordpress功能,但我的功能在控制台中保持返回值:0。 JS得到了加载'在admin_footer add_action上执行,当有人点击“添加行”时执行按钮。这一切似乎都很好。但是控制台消息不断返回: 成功的AJAX通话! ///返回数据:0

所以在我看来,woosea_ajax函数甚至不会被调用?谁能帮帮我呢?非常感谢。

    function woosea_ajax() {
            $data = "hello world";
            echo json_encode($data);
            wp_die(); // just to be safe
    }
    add_action( 'wp_ajax_woosea_ajax', 'woosea_ajax' );

    function ajax_js_script() {
    ?>
            <script type="text/javascript" >
                    jQuery(document).ready(function($) {
                            jQuery(".add-row").click(function(){
                                    jQuery.ajax({
                                            method: "POST",
                                            url: ajaxurl,
                                            data: { 
                                                    action: 'woosea_ajax'
                                            }
                                    })
                                    .done(function( data ) {
                                            console.log('Successful AJAX Call! /// Return Data: ' + data);
                                    })
                                    .fail(function( data ) {
                                            console.log('Failed AJAX Call :( /// Return Data: ' + data);
                                    });
                            });
                    });
            </script>
    <?php
    }
    add_action( 'admin_footer', 'ajax_js_script' );

1 个答案:

答案 0 :(得分:0)

要在前端(匿名用户)提供访问权限,您还需要添加 nopriv 操作,例如:

add_action( 'wp_ajax_nopriv_woosea_ajax', 'woosea_ajax' );