AJAX调用返回‘testest0’而不是‘test’--为什么?

时间:2017-05-03 作者:Steveo

我希望下面的代码会提醒“test”,而不是提醒“testtest0”。为什么?

代码在管理页脚中运行一些javascript,它的响应只是通过函数进行响应test()get_test();

<?php

class Test_Class {

    public function __construct() {
        add_action( \'admin_footer\', array( $this, \'test_js\' ) );
        add_action( \'wp_ajax_test\', array( $this, \'test\' ) );
    }

    public function test_js() { 
        global $post; ?>
        <script>
            jQuery(document).ready(function($) {

                function runTest() {

                    var data = {
                        \'action\': \'test\',
                    };

                    jQuery.post(ajaxurl, data, function(response) {
                        alert( response );
                    });

                }

                runTest();

            });
        </script>
    <?php }

    public function test() {

        $test = $this->get_test();
        echo $test;

    }

    public function get_test() {

        $string = \'test\';
        return $string;

    }

}

$new = new Test_Class();

1 个回复
最合适的回答,由SO网友:Bruno Cantuaria 整理而成

Ajax回调应始终以die(), 否则,它将输出您看到的0。我不知道为什么它会输出另一个“测试”

相关推荐

WordPress AJAX错误400向远程站点发送数据的错误请求

我正在使用发件人。net获取电子邮件订阅列表。这个网站给了我一些信息,可以将用户的电子邮件添加到订阅列表中。我想使用WordPress ajax来实现这一点。但它返回错误400错误请求。我的代码是:文件ajax新闻脚本。js公司: jQuery(document).ready(function($){ // Perform AJAX send news on form submit $(\'form#fnews\').on(\'submit\', funct