Простой вызов Ajax в WordPress не дает ожидаемый результат

В настоящее время это невозможно, а также не будет в будущем. Я бы сказал, что даже если это было возможно, с более сложным запросом вы бы не хотели искусственно сжать всю сложность запроса в имя метода. Не только потому, что трудно усвоить, что происходит в запросе, но и с точки зрения клиентского кода: вы хотите использовать экспрессивные имена методов, которые - в случае простого findByUsername(…) - вывод запроса позволяет вам create.

Для более сложных вещей вы просто повышаете сложность запроса в вызывающем коде, и желательно переходить к читаемому имени метода, который семантически выражает то, что делает запрос, и сохраняет сложность запроса в объявленном вручную запрос с использованием @Query, именованных запросов или тому подобного.

0
задан YeshDev 15 January 2019 в 16:59
поделиться

1 ответ

Я разделил код 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");
        }
    }
})



});
});
0
ответ дан YeshDev 15 January 2019 в 16:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: