Я использую WordPress. Я делаю вызов ajax с jQuery, 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 кстати. Спасибо!