2017-09-14 156 views
-1

我想从数据库加载我的菜单导航。我有这样的HTML:Append()Ajax无法正常工作

<ul id="nav-mobile"></ul> 

现在我想在Ajax请求的成功数据追加到id="nav-mobile" 我使用这个代码:

$.ajax({ 
    url:"/findRubriques", 
    type: "GET", 
    success: function(rubriques) { 
    $.each(rubriques, function(i, rubrique) { 
     $('#nav-mobile').append("<li><a href='categorie.html?rubriqueId=" + rubrique.id + ">" + rubrique.libelle + "</a></li>");    
    }); 
    } 
}) 

问题是,当我打开我的页面,菜单显示正确,而其他时间菜单不显示。但是,在两种情况下,当我在浏览器中检查我的日志时,我的ajax请求代码ajax是200

+0

您是否正在运行document.ready事件处理程序中的AJAX请求?这听起来像是你的竞赛状况发生,如果它间歇性失败 –

+0

所以有时它有效,有时它不会?当它“不起作用”时,具体如何失败?发生这种情况时,“rubriques”的内容是什么?当$('#nav-mobile')'发生这种情况时会发现什么?调试。 – David

回答

0

你想传递给$.each?一个json字符串?如果是,则应该将dataType添加到您的ajax配置中,以指定如何解析响应。否则,您可以使用JSON.parse()手动解析rubriques。 也添加一个“error”回调,因此如果ajax无法解析您的回复,您可以打印该错误。