我試圖通過AJAX觸發一個PHP函數,在我的wordpress網站上點擊一個按鈕後,使用wordpress隨機數來確保進程的安全。WordPress的AJAX隨機數不會驗證
一切工作正常,除了因爲某些原因不會驗證的隨機數,所以我的-1被返回。我錯過了什麼?
我在functions.php的代碼
add_action('wp_enqueue_scripts', 'button_click_ajax_scripts');
function button_click_ajax_scripts() {
if (! is_admin()) {
wp_enqueue_script('button_click_ajax', get_stylesheet_directory_uri() . '/js/button_click_ajax.js', array ('jquery'), false, true);
$params = array(
'nonce' => wp_create_nonce('button_nonce'),
'ajaxURL' => admin_url('admin-ajax.php'),
);
wp_localize_script('button_click_ajax', 'params', $params);
}
}
add_action('wp_ajax_button_click_ajax_callback', 'button_click_ajax_callback'); // only works if user logged in
function button_click_ajax_callback() {
check_ajax_referer('button_nonce', 'security');
echo "success";
die;
}
我在button_click_ajax.js代碼
jQuery(document).ready(function($) {
$("#button").click(function() {
console.log('Button clicked.');
$.get(
params.ajaxURL, {
'action': 'button_click_ajax_callback',
'security:': params.nonce,
},
function(response) {
// Do stuff here
$('#button').replaceWith(response);
}
);
});
});
不能相信我錯過了!謝謝 – user1684046 2014-10-30 23:28:30