我一直在抨击电脑试图解决这个问题。我的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);
}
});
});
}
答案 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