json_encode与PHP 5.1.6和jQuery

时间:2012-04-04 13:50:06

标签: php jquery json

PHP5.1.6没有json_encode(),所以我想使用json_encode documentation上的函数。 我试图使用此函数的输出与ajax请求:

fetchArticles: function( e ) {
      $.ajax({
        url: 'article.php',
        type: 'POST',
        data:  { id: $(this).data( 'id_prod' ) },
        dataType: 'json',
        success: function( results ) {
          console.log('finished');
          console.log(results);
        }
      });

我现在在article.php

if ( isset($_POST['id']) ) {
 connect();
 $articles = get_articles( $_POST['id'] );
 echo json_encode( $articles ); return;
}

问题在于将结果返回到JS控制台:

  • 如果没有结果,则打印空数组
  • 如果有一个结果,则打印正确的对象
  • 但是当有多个结果时,没有任何内容打印到控制台,甚至没有打印到finished字。

我可以在HTTP标头和响应中看到返回了正确的数据,但它没有打印到控制台。你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

如果无法转换json文件,则抛出parsererror异常,请尝试以下操作:

  $.ajax({
    url: 'article.php',
    type: 'POST',
    data:  { id: $(this).data( 'id_prod' ) },
    dataType: 'json',
    success: function( results ) {
      console.log('finished');
      console.log(results);
    },
    error: function(jqXHR, textStatus, errorThrown) { 
      console.debug(jqXHR, textStatus, errorThrown); 
    }
  });

当JSON无效时,它将输出您的错误。