我正在尝试对注册表上的电子邮件进行AJAX检查。我的代码如下所示:
function add_ajaxurl_cdata_to_front(){ ?>
<script type="text/javascript"> //<![CDATA[
ajaxurl = \'<?php echo admin_url( \'admin-ajax.php\' ); ?>\';
//]]> </script>
<?php }
add_action( \'wp_head\', \'add_ajaxurl_cdata_to_front\', 1);
add_action( \'wp_footer\', \'add_js_to_wp_footer\' );
function add_js_to_wp_footer(){ ?>
<script type="text/javascript">
jQuery(\'#reg_email\').on("change",function(){
jQuery.ajax({
type: \'POST\',
url: ajaxurl,
data: {"action": "custome_ajax_email_check"},
success: function(data){
if(data.result) {
alert(\'Email exists!\');
} else {
alert(\'Email does not exist!\');
console.log(data.result)
}
}
});
});
</script>
<?php }
add_action(\'wp_ajax_nopriv_custome_ajax_email_check\', \'custome_ajax_email_check\');
function custome_ajax_email_check(){
$email = $_POST[\'email\'];
// do check
if ( email_exists($email) ) {
$response->result = true;
}
else {
$response->result = false;
}
echo $response;
}
我总是得到错误的响应,当我回显$响应时,我得到500个内部服务器错误。
我做错了什么?
最合适的回答,由SO网友:AddWeb Solution Pvt Ltd 整理而成
您在ajax中遗漏了一些东西。请查找以下更新的代码,这些代码将帮助您解决问题
function add_ajaxurl_cdata_to_front(){ ?>
<script type="text/javascript"> //<![CDATA[
ajaxurl = \'<?php echo admin_url( \'admin-ajax.php\' ); ?>\';
//]]> </script>
<?php }
add_action( \'wp_head\', \'add_ajaxurl_cdata_to_front\', 1);
add_action( \'wp_footer\', \'add_js_to_wp_footer\' );
function add_js_to_wp_footer(){
?>
<script type="text/javascript">
jQuery(\'document\').ready(function(){
jQuery(\'#reg_email\').on("change",function(){
jQuery.ajax({
type: \'POST\',
url: ajaxurl,
data: {"action": "custome_ajax_email_check"},
success: function(data){
console.log(data);
data = jQuery.parseJSON(data);
console.log(data.result);
if(data.result) {
alert(\'Email exists!\');
} else {
alert(\'Email does not exist!\');
}
}
});
});
});
</script>
<?php }
add_action( \'wp_ajax_custome_ajax_email_check\', \'custome_ajax_email_check\' );
add_action(\'wp_ajax_nopriv_custome_ajax_email_check\', \'custome_ajax_email_check\');
function custome_ajax_email_check(){
$email = $_POST[\'email\'];
// do check
if ( email_exists($email) ) {
$response->result = true;
}
else {
$response->result = false;
}
echo( json_encode( $response));
wp_die();
}
希望这对你有帮助!