WordPress AJAX收到响应“Null”

时间:2013-12-19 作者:ashraf

我正在尝试获取主页上帖子的ID。到目前为止,我的编码是

wp_enqueue_script( \'my-ajax-request\', get_stylesheet_directory_uri() . \'/js/ajax.js\', array( \'jquery\' ) );
wp_localize_script( \'my-ajax-request\', \'MyAjax\', array( \'ajaxurl\' => admin_url( \'admin-ajax.php\' ) ) );
add_action(\'wp_ajax_nopriv_ajax_request\', \'ajax_handle_request\');
add_action(\'wp_ajax_ajax_request\', \'ajax_handle_request\');


function ajax_handle_request(){
$postID = $_POST[\'id\'];
if (isset($_POST[\'id\'])){
    $post_id = $_POST[\'id\'];
}else{
    $post_id = "";
}

global $post;
$post = get_post($postID);

$response = array( 
    \'sucess\' => true, 
    \'post\' => $post,
    \'id\' => $postID , 
);

// generate the response
print json_encode($response);

// IMPORTANT: don\'t forget to "exit"
exit;
}
和我的jquery

jQuery(document).ready(function($) {
$(\'h1.entry-title a\').click(function(event) {
    event.preventDefault();
var id = $(this).data(\'id\');

$.ajax({
  type: \'POST\',
  url: MyAjax.ajaxurl,
  data: {\'action\' : \'ajax_request\', \'id\': id},
  dataType: \'json\',
  success: function(data) {
    alert(data[\'post\']);
  }
});     

return false;
});
});
但我得到的警报为Null,而不是post的id。

2 个回复
SO网友:Maruti Mohanty

您以错误的方式呈现json数据。

更改success 发送至以下地址:--

success: function(data) {
    alert(data.id);
    // Now you can similarly render the other details like details.success
}

SO网友:sri

首先,在Chrome或其他浏览器上,您可以通过“右键单击=>检查元素=>网络选项卡”来检查是否从服务器获取任何数据。

如果Ajax功能正常工作,您应该会看到一个GET请求。您正在使用POST 键入,而尝试使用GET.

一旦看到GET请求,还应该使用JSON.parse 当您在php函数中编码数据时。

结束

相关推荐

具有循环过滤类别的AJAX

我一直在研究如何使用AJAX进行循环。我在网上找到了一些代码并修改了一些部分,但我似乎无法使其正常工作。这是我的循环代码:<article id=\"main\" class=\"five seventh padded\"> <?php $categories = get_categories(); ?> <ul id=\"category-menu\"> <?php foreach ( $categor