Wordpress AJAX-запрос возвращает POST: 400 (классическая ошибка) - как исправить?

Видел я рекомендованные топики, разумеется. Более того, уже не первый десяток таких запросов писал, и в данном проекте их уже 8 - все работают. А вот этот - заколдобило.

Код запроса

            $.ajax({
            url: "/wp-admin/admin-ajax.php",
            method: 'post',
            type: 'POST',
            data: {
                action: 'get_categories_list',
                user_type: typeUser,
            },
            success: function (response) {
                console.log(response)
            },
            error: function (response) {
                console.log('initCategoriesList Error', response)
            }
        })

Chrome DevTools - Network Инициатор - F12 headers - F12

Код для WordPress оформляется как плагин. Соответственно после написания плагин дезактивировал и снова активировал, чтобы прописались все связи:

        $this->loader->add_action('wp_ajax_customer_get_categories_list', $plugin_public, 'get_categories_list_callback' );
    $this->loader->add_action('wp_ajax_nopriv_get_categories_list', $plugin_public, 'get_categories_list_callback' );

и сама функция

    public function get_categories_list_callback() {

    $user_type = $_POST['user_type'];
    $res = Categories::listAllCategories($user_type);
    $answer = ['code' => 200, 'message' => 'Ok', 'data' => json_encode( $res )];

    echo json_encode($answer);
    wp_die();
}

И вот что я сделал сейчас не так, если в этом же файле есть еще 2 AJAX-запроса, оформленных также и которые работают? Не было бы таким тривиальным и в то же время непонятно куда копать - сидел бы сам разбирался по докам, но тут что-то я завис.


Ответы (1 шт):

Автор решения: KAGG Design

Работать начало потому, что вы разлогинились (или куки умерли по времени). В коде ошибка.

wp_ajax_customer_get_categories_list - НЕ работает для залогиненного пользователя, потому что в $.ajax запросе get_categories_list, без customer.

wp_ajax_nopriv_get_categories_list - работает для НЕ залогиненного пользователя, потому что имя акции указано правильно.

→ Ссылка