Vì vậy, tôi đang sử dụng cấu hình này cho một cuộc gọi AJAX trong khu vực hành chính ( như thế này ):
add_action( 'admin_head', 'ajaxPerNgg' );
function ajaxPerNgg(){ ?>
<script type="text/javascript" >
jQuery(document).ready(function() {
jQuery("#message").remove();
jQuery("#errore a#attivo").click(
function(){
var data = {
action: 'my_action'
};
jQuery.post(ajaxurl, data, function(response) {
if(response == "attivato")
jQuery("#errore a#inattivo").attr("id","completato").html("Attivato");
else
jQuery("#errore a#inattivo").attr("id","attivo").html("Attivalo ora");
});
}
);
});
</script>
<?php }
add_action('wp_ajax_my_action', 'my_action_callback');
function my_action_callback() {
echo 'attivato';
die();
}
Nó chỉ là một mã kiểm tra, nhưng nó luôn trả về 0 thay vì chuỗi "attivato". Nó cũng tìm thấy url ajax chính xác, không có lỗi 404.
Vấn đề là gì?
wp_ajax_my_action
"my_action", phải khớp với hành động được sử dụng trong bài viết jQuery. Tôi thấy rằng kết quả khớp của bạn, vì vậy đó không phải là vấn đề trong trường hợp của bạn. Tôi cũng có nó hoạt động từ trang quản trị, đó là những gì bạn đang cố gắng làm. Bạn có đăng nhập khi cố gắng thực hiện cuộc gọi ajax này không? Hay bạn đã đăng xuất?