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



这是我的问题

我正在尝试替换这个结构:

  1. PHP:

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

    $('#contenu').html(data);
    

有了这个:

  1. PHP:

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

    $('#contenu').html(JSON.parse(data).mainContent);
    

有了第一个选项,一切都很好。发生的情况是:在我的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就是问题所在。

我试着用一些随机字符串替换PHP部分中的getContenu函数,只是想看看它是否有效,但也没有任何结果。

感谢阅读我的文章,

Chris

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

好吧,所以我不知道到底发生了什么。出于某种原因,它现在起作用了。我什么都没改(我浏览了我的Ctrl+Z和Ctrl+Maj+Z,看看我改了什么,但没有什么不同,只是一些警报和@ReijithRKrishnan建议的console.log(data)……但现在没有这行也能用。我无言以对……有时它太神秘了……

最新更新