jquery - 具有多个 requessts $.get()的JSON.parse()

  显示原文与译文双语对照的内容
0 0

在这个代码中,我使用 $. when ( ) 使两个调用 $. get ( ) 。 使用 JSON.parse ( ) 时出现问题。 如果我做了一个调用,然后只有一个变量,但是当两者被调用时,JSON.parse ( ) 被阻止了。 "未捕获的SyntaxError: 意外的令牌 <"。

我如何解决感谢你的帮助。 下面是代码:


function carica_commenti(id)
{ 
 var pagina = $('#pagina'+id).val(); 

 $.when($.get("/carica_commenti_ajax/"+id+"/"+pagina), $.get("/post/commenti/apprezzamenti_commenti")).done(function(commenti, app) 
 {
 var commento = JSON.parse(commenti); 
 var apprezzamenti = JSON.parse(app); 

 var resultHtml = ''; 

 $.each(commento, function(i, el) 
 { 
 resultHtml +="<div class='commento' id='commento"+ el.id_comments +"'>
 <a href='goak.it/utente/"+ el.id_user +"/1'>
 <img src='//goak.it/"+ el.percorso +"'width=30px and height=30px/>
 <strong>"+ el.nome +""+ el.cognome +"</strong>
 </a>
 <span id='corpo-commento"+ el.id_comments +"'>"+ el.contenuto +"</span>
 <div class='post-modifica btn-group'> 
 <button type='button' class='btn btn-post btn-default dropdown-toggle post-tasti-modifica tasto-commento' data-toggle='dropdown'>
 <span class='caret'></span>
 </button>
 <ul class='dropdown-menu' role='menu'>
 <li><a href='#' data-toggle='modal' data-target='#modifica-commento' class='modifica-commento' id='"+ el.id_comments +"'>Modifica Commento</a></li>
 <li><a href='#' data-toggle='modal' data-target='#cancella-commento' class='cancella-commento' id='"+ el.id_comments +"'>Cancella Commento</a></li>
 </ul>
 </div>
 </div>
 <div class='info-notifica data-commento'>
 <time class='timeago'> Adesso · </time>
 <a class='mi-interessa-commento' id='like_commento"+ el.id_comments +"' onclick='like_commento("+ el.id_comments +")' value='1'> Mi interessa </a>
 </div>";


 });

 $('#commentscontainer'+id).append(resultHtml);
 }); 
 var $input = $('#pagina'+id);
 $input.val( +$input.val() + 1 );
}

时间: 原作者:

0 0

参数 commentiapp 实际上是数组,但具有ajax响应的结构: [ data, statusText, jqXHR ]

因此,如果要分析调用结果,必须在 data 上调用 JSON.parse(),而不是在整个 array 上调用。

查看jquery插件文档的示例:


$.when( $.ajax("/page1.php" ), $.ajax("/page2.php" ) ).done(function( a1, a2 ) {
//a1 and a2 are arguments resolved for the page1 and page2 ajax requests, respectively.
//Each argument is an array with the following structure: [ data, statusText, jqXHR ]
 var data = a1[ 0 ] + a2[ 0 ];//a1[ 0 ] ="Whip", a2[ 0 ] =" It"
 if (/Whip It/.test( data ) ) {
 alert("We got what we came for!" );
 }
});

原作者:
...