JSON.parse不起作用并退出函数

时间:2016-05-27 05:44:04

标签: javascript php jquery json

这是我的问题

我正在尝试替换此结构:

  1. PHP:

    $mainContent = getContenu($_GET['rq']);
    die($mainContent);
    
  2. JS:

    $('#contenu').html(data);
    
  3. 有了这个:

    1. PHP:

      $envoi['mainContent'] = getContenu($_GET['rq']);
      die(json_encode($envoi));
      
    2. JS:

      $('#contenu').html(JSON.parse(data).mainContent);
      
    3. 使用第一个选项,一切正常。 会发生什么:在我的JS文件index.js中,我上面写的代码片段就是这样的结构:

      $(document).ready(function(){
         (...)
         $('.menu a').click(function(){
            (...)
            $.get('index.php',rq=' + rq, function(data){
               //---->IT'S IN HERE<----//
            });
         });
      });
      

      getContenu()函数只返回html或php文件的implode()版本(取决于rq)。

      第二个选项(使用JSON)似乎一旦命中$.get就退出JSON.parse()函数。我尝试使用$('#contenu').html()之外的解析函数,但var whatevs = JSON.parse(data)以及var whatevs = JSON.parse(data).mainContent(data)['mainContent']都会产生相同的结果。

      如果我在alert函数之前放置JSON.parse,它会被调用,但是如果我把它放在它之后,它就不会调用它,这让我相信JSON.parse 1}}是问题。

      我试图用一些随机字符串替换PHP部分中的getContenu函数,看看它是否有效,但是没有任何事情发生。

      感谢您阅读,

      克里斯

      P.S。这是一个学校项目,所以不使用JSON不是一个选项,因为老师要求 P.P.S.我在最新版本的Chrome上运行它,因此浏览器不是问题。

1 个答案:

答案 0 :(得分:0)

好的,所以我不确切知道发生了什么。由于某种原因,它现在有效。我没有改变任何东西(我已经浏览了我的Ctrl + Z和Ctrl + Maj + Z直到看到我改变了但没有什么不同,只有一些警报和console.log(data) @ ReijithRKrishnan建议......但现在它的工作也没有那条线。我无言以对......有时候IT充满了神秘感......