Home > database >  Ajax script with wordpress is adding a random '0' in my output
Ajax script with wordpress is adding a random '0' in my output

Time:09-29

I have created a wordpress plugin that uses ajax to update a div every 10 seconds.

It seems to work and is running the AJAX GET request, and outputs test as it should, how ever also adds a 0 to the div output. (response)

I cant work out why it is doing it? Any suggestions?

PHP

<?php

add_action( 'wp_enqueue_scripts', 'aj_enqueue_scripts' );
function aj_enqueue_scripts() {

    wp_enqueue_script( 'aj-demo', plugin_dir_url( __FILE__ ). 'aj-demo-ajax-code.js?v=2', array('jquery') );

    // The second parameter ('aj_ajax_url') will be used in the javascript code.
    wp_localize_script( 'aj-demo', 'aj_ajax_demo', array(
                        'ajax_url' => admin_url( 'admin-ajax.php' ),
                        'aj_demo_nonce' => wp_create_nonce('aj-demo-nonce') 
    ));
}


add_action( 'wp_ajax_nopriv_aj_ajax_demo_get_count', 'aj_ajax_demo_process' );
add_action( 'wp_ajax_aj_ajax_demo_get_count', 'aj_ajax_demo_process' );  // For 







function aj_ajax_demo_process() {
    
   
   
 echo "test";
   
  
}

Jquery / JS

 jQuery(document).ready( function(){
setInterval(function(){



        jQuery.ajax({
            url : aj_ajax_demo.ajax_url, 
            type : 'get',
            data : {
                action : 'aj_ajax_demo_get_count', 
                nonce : aj_ajax_demo.aj_demo_nonce, 
            
            },
            success : function( response ) {
                jQuery('.now_playing_info').html(response);  
            },
            error : function( response ) {
                
            }
        });
}, 10000);
});

CodePudding user response:

Try to add an exit; at the end of function.

function aj_ajax_demo_process() {
  echo "test";
  exit; // add this line
}

CodePudding user response:

WordPress will continue to call all of the AJAX registered callbacks until one of the callbacks kills the execution, with the final one dieing with the response of 0.

So just use wp_die() at the end of your code

function aj_ajax_demo_process() {
   echo "test";
   wp_die();
}
  • Related