php - Ajax 响应中的杂散字符?

标签 php jquery ajax json wordpress

我正在使用 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”从响应的末尾去掉,但我觉得有更大的事情正在发生,我不想做一个廉价的 hack 来让它工作。 JQuery 1.6.1 顺便说一句。谢谢!

最佳答案

很明显有一个 0 与这段 javascript 完全无关。您可以看到您从响应中删除了最后一个字符,它删除了 } 但 0 仍然存在。您需要查看 PHP/HTML 的其余部分,因为某处输出了一个杂散字符。

如果你要添加 exit();在 echo 之后,您会看到 0 消失了。

关于php - Ajax 响应中的杂散字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6155475/

相关文章:

php - 根据另一个表中的值从一个表中选择值

javascript - 使用 jquery 从 SVG 中删除所有类

php - 命名空间函数默认为全局优先

php - JSON 单项

javascript - 将 JavaScript 数组显示到 HTML div 中时出现问题

javascript - require.js 没有加载我的模块

ajax - Spring MVC 与 ajax 文件上传和 MultipartFile

php - 如果插入是通过 AJAX 完成的,如何在 codeigniter session 中存储最后的插入 id?

javascript - Fabricjs 鼠标 :down event fires twice

php - array_slice 在大数组上有负偏移