Ajax响应中的杂散字符?

| 我正在使用wordpress。我用jQuery进行了ajax调用,PHP回显了一个JSON对象,但是我在javascript中获得的响应的末尾添加了\“ 0 \”,这使得对json对象的解码失败。 PHP:
function newspaper_getpost() {
    $d = array(\'foo\' => \'bar\', \'baz\' => \'long\');
    echo json_encode($d);
}
add_action(\'wp_ajax_newspaper_getpost\', \'newspaper_getpost\');
JS:
  $.post(MyAjax.ajaxurl,{
        action : \'newspaper_getpost\',
        postID : $(this).val()
        }, function(response) {
              console.log(response);
  });
输出:
{\"foo\":\"bar\",\"baz\":\"long\"}0
我试过了
echo substr( json_encode($d), 0, -1);
并得到
{\"foo\":\"bar\",\"baz\":\"long\"0
因此,我确定它不是PHP方面。我可以在响应的末尾加上\“ 0 \”,但是我感觉更大的事情正在发生,我不想做一个廉价的修改来使其正常工作。 jQuery 1.6.1顺便说一句。谢谢!     
已邀请:
        很明显,这个javascript代码与0完全无关。您会看到您从响应中切掉了最后一个字符,并删除了
}
,但0仍然存在。您需要查看PHP / HTML的其余部分,因为某个地方正在输出一个流浪字符。 如果要添加exit();回声之后,您会看到0消失。     
        尝试这个
function newspaper_getpost() {
    $d = array(\'foo\' => \'bar\', \'baz\' => \'long\');
    die(json_encode($d));
}
add_action(\'wp_ajax_newspaper_getpost\', \'newspaper_getpost\');
    
        这意味着在您的
add_action(\'wp_ajax_newspaper_getpost\', \'newspaper_getpost\');
php代码之后/之内有一些回声。寻找一个print_r(),echo或类似的东西。     

要回复问题请先登录注册