«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему мой вызов AJAX в WordPress возвращает 0?

Почему мой вызов AJAX в WordPress возвращает 0?

Опубликовано 8 ноября 2024 г.
Просматривать:927

Why is my WordPress AJAX call returning 0?

Вызовы Ajax в WordPress: устранение проблем с выводом

Ваш вызов ajax всегда возвращает 0 в качестве вывода, оставляя вас в недоумении по поводу причины. Чтобы устранить эту проблему, рассмотрите следующее:

Глобальная переменная ajaxurl в WordPress:

WordPress определяет глобальную переменную ajaxurl в серверной части, что облегчает вызовы AJAX. Однако эта переменная недоступна во внешнем интерфейсе.

Определите ajaxurl во внешнем интерфейсе:

Чтобы использовать вызовы AJAX во внешнем интерфейсе, вам необходимо вручную определить переменную ajaxurl . Одним из эффективных методов является wp_localize_script.

Использование wp_localize_script:

Предполагая, что ваши вызовы AJAX находятся в my-ajax-script.js, используйте wp_localize_script следующим образом:

function my_enqueue() {
    wp_enqueue_script( 'ajax-script', get_template_directory_uri() . '/js/my-ajax-script.js', array('jquery') );
    wp_localize_script( 'ajax-script', 'my_ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
}
add_action( 'wp_enqueue_scripts', 'my_enqueue' );

Это создает объект my_ajax_object в вашем файле JS, который содержит ajax_url.

Используйте my_ajax_object в Javascript:

После локализации скрипта используйте объект my_ajax_object в файле JS:

jQuery.ajax({
    type: "post",
    dataType: "json",
    url: my_ajax_object.ajax_url,
    data: formData,
    success: function(msg){
        console.log(msg);
    }
});
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3