Простой WordPress AJAX-запрос не работает
У вас есть идея, почему этот простой запрос wp ajax не работает? Это всегда возвращает неудачу. Консоль -> https://pastebin.com/TABQCjXe
jQuery(document).ready(function($) {
// This does the ajax request
$.ajax({
type: 'post',
url: ajaxurl,
data: {
'action':'prefix_load_cat_posts'
},
success:function(data) {
// This outputs the result of the ajax request
console.log(data);
$( ".prefix_load_cat_posts" ).append("success");
},
error: function(errorThrown){
console.log(errorThrown);
$( ".prefix_load_cat_posts" ).append("fail");
}
});
});
3 ответа
Решение
Действие должно быть load-filter
вместо prefix_load_cat_posts
, Видя ваш код PHP, prefix_load_cat_posts
на самом деле имя функции обратного вызова.
data: {
'action':'load-filter'
},
Есть еще один альтернативный вариант. Я согласен с Сэмюэлем, но я делюсь еще одним вариантом
add_action( 'wp_ajax_nopriv_prefix_load_cat_posts', 'prefix_load_cat_posts' );
add_action( 'wp_ajax_prefix_load_cat_posts', 'prefix_load_cat_posts' );
Ваше действие это 'load_filter', также вы должны быть локализованы ajaxurl использовать эту функцию wp_localize_script
$.ajax({
type: 'post',
url: ajaxurl,
data: {
'action':'load-filter'
},
success:function(data) {
// This outputs the result of the ajax request
console.log(data);
$( ".prefix_load_cat_posts" ).append("success");
},
error: function(errorThrown){
console.log(errorThrown);
$( ".prefix_load_cat_posts" ).append("fail");
}
});