我刚刚开始在Wordpress前端使用Ajax。 js被正确加载并传递数据,但作为回报,我得到了一个完整的html响应而不仅仅是“ok”。
当我直接导航到此网址时,它会正确打印出“确定”:https://www.mywebsite.com/wp-admin/admin-ajax.php?action=checkins_show
知道我做错了什么吗?
这是我的设置:
在function.php
内:
add_action( 'wp_enqueue_scripts', 'add_frontend_ajax_javascript_file' );
function add_frontend_ajax_javascript_file(){
wp_enqueue_script( 'ajax_custom_script', get_template_directory_uri() . '/assets/js/checkins.js', array('jquery') );
wp_localize_script( 'ajax_custom_script', 'frontendajax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' )));
}
add_action( 'wp_ajax_checkins_show', 'checkins_show' );
add_action( 'wp_ajax_nopriv_checkins_show', 'checkins_show' );
function checkins_show() {
echo 'ok';
die();
}
在checkins.js
$(document).ready(function(){
var el = $("#checkins_show");
var loc_id = el.data('locid');
var url = el.data('href');
$.ajax({
type: 'post',
url: url,
data: {
action: 'checkins_show',
locid: loc_id
},
success : function( response ) {
console.log(response);
if( response === 'ok' ) {
el.html('worked');
}
}
});
return false;
});
实际呈现的HTML:
<div data-locid="111" data-url="https://www.mywebsite.com/wp-admin/admin-ajax.php?action=checkins_show" id="checkins_show"></div>