Я использую 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 кстати. Спасибо!