WP_AJAX函数返回html页面

时间:2018-11-29 作者:J.BizMai

我正在尝试一个插件特性:使用wp\\uajax特性通过点击按钮下载文件。

我已经使用了wp\\U ajax,但在本例中,我没有发现错误。当我单击按钮时,它会正确运行js文件,但会返回html页面来调用getPrivateFileByAjax().

JS

jQuery( function($) {
    $(document).ready( function() {
        $(".download-file").on( "click", function( event ) {
            var file_name = $(this).attr("data-file");
            var data = {
                \'action\': "getPrivateFileByAjax",
                \'file_name\' : file_name
            };
            $.post( wgs_ajax_object.ajaxurl, data, function( response ) {
                console.dir( response );
            });
        });
    });
});

My Shortcode page

class FileDownloadsShortcode extends Shortcode {

    public function check_page() {
        global $post;

         if( !empty( $post ) && has_shortcode( $post->post_content, $this->tag ) ){
            add_action(\'wp_enqueue_scripts\', array( $this , \'set_scripts\'));
        }
    }

    public function set_scripts() {

        //Javascripts
        wp_enqueue_script( "downloadsscript", "path-to-my-js.js" );
        wp_localize_script( \'downloadsscript\', \'wgs_ajax_object\',
             array( \'ajax_url\' => admin_url( \'admin-ajax.php\' ) ) 
        );
    }

}

Admin init file

class Admin extends FooPlugin {

    public function __construct() {
         parent::__construct();
         add_action( "wp_ajax_getPrivateFileByAjax", array( $this, "getPrivateFileByAjax" ) );
         add_action( "wp_ajax_nopriv_getPrivateFileByAjax", array( $this, "getPrivateFileByAjax" ) );
     }

     public static function getPrivateFileByAjax(){
        echo "test";
        wp_die();
     }

}

1 个回复
SO网友:J.BizMai

我的错误在JS文件中。

我不得不写信wgs_ajax_object.ajax_url 而不是wgs_ajax_object.ajaxurl

结束

相关推荐

使用类从插件调用AJAX

我正在制作一个带有类和方法的插件。这个类通过主题(硬编码)被调用来排队并本地化我的js。它还为ajax做了准备。然而,我不断得到错误:400发布http://www.devsite.local/wp-admin/admin-ajax.php 400(错误请求)我在一个类之外的多个插件和函数中运行过ajax。php没有问题,但我无法让它在类中工作。这是我的代码:class CCYTFeatured { public function __construct(){ $this-