Простой вызов Ajax в WordPress не дает вывод expecetd - PullRequest
0 голосов
/ 15 января 2019

Вот мой файл JavaScript: -

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

$('#test_button').click(function(e){

        alert("test");

$.ajax({
    url : my_ajax_object.ajaxurl ,
    type : 'post',
    dataType : 'json',
    data : {
        action : 'do_ga'
    },
    complete: function(res, status) {

        if( status == 'success' ) {

          console.log("success "+res);

        } else {
            console.log("fail "+res);

        }
    }
});



});
});

вот мой php-код в functions.php: -

function do_ga() {
    die("test" );
}

add_action( 'wp_ajax_do_ga', 'do_ga' );
add_action( 'wp_ajax_nopriv_do_ga', 'do_ga' );
//this is the script en queuing 
function my_enqueue() {
    wp_enqueue_script( 'ga-loadmore', get_template_directory_uri() . '/pl-custom/front-end-assets/js/ga-loadmore.js', array('jquery') );
    wp_localize_script( 'ga-loadmore', 'my_ajax_object',
            array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
}
add_action( 'wp_enqueue_scripts', 'my_enqueue' );

Таким образом, при нажатии кнопки с идентификатором "#test_button" вместо вывода success [object] [object] выводится fail [object] [object]. Что нужно сделать здесь. Точно, я хочу "тест успеха". пожалуйста, добавьте json_encode и декодируйте везде, где требуется в решении. Спасибо

1 Ответ

0 голосов
/ 17 января 2019

Я разделил код PHP в другом файле и включил его в functions.php, а также разделил постановку в очередь и немного изменил синтаксис запроса. Я прилагаю свой код, и он работает:

function do_ga() {//server code
     $x="test";

      wp_die( $x);
      exit;
}

add_action( 'wp_ajax_do_ga', 'do_ga' );
add_action( 'wp_ajax_nopriv_do_ga', 'do_ga' );

сторона клиента (уже в очереди): -

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

$('#test_button').click(function(e){
    url = window.location.origin + '/wp-admin/admin-ajax.php?action=do_ga';
        alert("test");
$.ajax({
    async: true,
    type: 'POST',
    url: url,
    data: {
        'my_number':1 //you need not pass data
    },
    complete: function(res, status) {

        if( status == 'success' ) {

           alert("success "+ res.responseText);


        } else {

           alert("unable to process request");
        }
    }
})



});
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...