Câu trả lời:
cách "an toàn và sạch sẽ hơn" là sử dụng admin-ajax.php đi kèm với wordpress và wp_ajax
hook để gọi chức năng xử lý của bạn từ tệp plugin của bạn và sử dụng wp-nonce để kiểm tra tính toàn vẹn của cuộc gọi.
ví dụ:
cuộc gọi JQuery ajax của bạn sẽ là
<script type="text/javascript" >
jQuery(document).ready(function($) {
var data = {
action: 'ACTION_NAME',
Whatever: '1234',
_ajax_nonce: '<?php echo wp_create_nonce( 'my_ajax_nonce' ); ?>'
};
// since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
// If you need it on a public facing page, uncomment the following line:
// var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
jQuery.post(ajaxurl, data, function(response) {
alert('Got this from the server: ' + response);
});
});
</script>
sau đó trong tập tin plugin của bạn thêm
//if you want only logged in users to access this function use this hook
add_action('wp_ajax_ACTION_NAME', 'my_AJAX_processing_function');
//if you want none logged in users to access this function use this hook
add_action('wp_ajax_nopriv_ACTION_NAME', 'my_AJAX_processing_function');
* nếu bạn muốn người dùng và khách đăng nhập truy cập chức năng của mình bằng ajax, sau đó thêm cả hai hook. * ACTION_NAME phải khớp với giá trị hành động trong POST ajax của bạn.
sau đó trong chức năng của bạn chỉ cần đảm bảo yêu cầu đến từ nguồn hợp lệ
function my_AJAX_processing_function(){
check_ajax_referer('my_ajax_nonce');
//do stuff here...
}
Hi vọng điêu nay co ich