AJAX在Firefox / IE中返回Null,但在Chrome中返回Object

时间:2013-07-30 18:25:17

标签: php jquery ajax

我一直在抨击电脑试图解决这个问题。我的AJAX调用/请求在Chrome中返回正确的对象,但在Firefox / IE8中它返回null。我已经尝试将我的函数拆分为一个带有一个值/键对的简单数组,但我仍然收到相同的结果。任何建议都非常感谢!

简化的PHP功能:

add_action('wp_ajax_get_ldap', 'get_ldap_attr');
add_action('wp_ajax_nopriv_get_ldap', 'get_ldap_attr');

function get_ldap_attr() {
  header("Content-Type: application/json", true);
  echo json_encode( array("happy" => "coding") );
  die();
}

jQuery:

jQuery(function() {
  jQuery('#empLanId').on('blur', function () {
     var lan = jQuery('#empLanId').val();
     var data = { action:"get_ldap", lan:lan };
     var ajaxurl = '<?php echo admin_url("admin-ajax.php", null); ?>';
       jQuery.ajax({
          url: ajaxurl,
          type: "POST",
          data: data,
          dataType: "json",
          success: function(response) {     
            console.log(response);
          }
      });
  });

}

1 个答案:

答案 0 :(得分:1)

您必须使用JSON响应发送正确的内容类型。

// Send as JSON
header("Content-Type: application/json", true);

您的更新功能应如下所示:

function get_ldap_attr() {
    header("Content-Type: application/json", true);
    echo json_encode( array("happy" => "coding") );
    die();
}

请参阅我之前的回答:

jQuery $.ajax request of dataType json will not retrieve data from PHP script