ดังนั้นฉันใช้การกำหนดค่านี้สำหรับการโทร AJAX ในพื้นที่การดูแล ( เช่นนี้ ):
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();
}
มันเป็นแค่รหัสทดสอบ แต่จะคืนค่า 0 เสมอแทนที่จะเป็นสตริง "attivato" นอกจากนี้ยังค้นหา URL ajax อย่างถูกต้องโดยไม่มีข้อผิดพลาด 404
อะไรคือปัญหา?
wp_ajax_my_action
"my_action" ต้องตรงกับการกระทำที่ใช้ในโพสต์ jQuery ฉันเห็นว่าคุณตรงกันดังนั้นจึงไม่ใช่ปัญหาในกรณีของคุณ ฉันยังให้มันทำงานได้จากหน้าผู้ดูแลระบบซึ่งเป็นสิ่งที่คุณพยายามทำ คุณเข้าสู่ระบบเมื่อพยายามโทร ajax นี้หรือไม่? หรือคุณออกจากระบบ?