AJAX没有返回任何东西-Wordpress


AJAX not returning anything - Wordpress

基于此处接受的答案编写代码:

Wordpress-使用jQuery获取用户信息ajax POST请求

header.php

<?php $admin_ajax_path = ABSPATH . 'wp-admin/admin-ajax.php'; ?>
<script>
  var absAjaxPath = "<?php echo $admin_ajax_path; ?>";
</script>

functions.php

add_action('wp_ajax_nopriv_ajax_request', 'ajax_handle_request');
add_action('wp_ajax_ajax_request', 'ajax_handle_request');
function ajax_handle_request(){
  switch($_REQUEST['fn']){
    case 'getUserMeta':
      $output = ajax_user_meta($_REQUEST['id']);
      break;
    default:
      $output = 'That is not a valid FN parameter. Please check your string and try again';
      break;
  }
  $output = json_encode($output);
  if(is_array($output)){
    return $output;
  }else{
    echo $output;
  }
die();
}
function ajax_user_meta($id){
    $theMeta = get_user_meta( $id, 'tel', true );
  return $theMeta;
}

我的js文件

jQuery('.list-group-item').click(function() {
  var id = jQuery(this).attr('id');
  alert(id);
  jQuery.ajax({
    url: 'http://sub.domain.com/wp-admin/admin-ajax.php',
    url: absAjaxPath, //this one returns a not found error
    data: {'action' : 'ajax_request', 'fn': 'getUserMeta', 'id': id},
    dataType: 'json',
    success: function(data) {
      //We expect a JSON encoded array here, not an HTML template.
      alert(data);
    }
  });     
  return false;
});

一旦我单击id设置为2的元素,alert(id)就会触发。我有一个用这个id设置的用户。除此之外,什么也没发生。ajax成功函数中的alert(data)不应该触发吗?

尝试删除dataType:'json'让ajax自动检测

die();exit();添加到您通过AJAX调用的PHP函数的最后一行,以防止返回0