Javascript Ajax调用以纯字符串格式返回数据。

Javascript Ajax调用以纯字符串格式返回数据。,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,在PHP中,我可以执行以下操作: echo "<div>".$myvariable."</div>"; $.ajax({ method: "POST", url: 'meal_list.php', dataType: "html", data: {meals: meals}, success: function(data) { var sidebar = document.getElem

在PHP中,我可以执行以下操作:

echo "<div>".$myvariable."</div>";
    $.ajax({
      method: "POST",
      url: 'meal_list.php',
      dataType: "html",
      data: {meals: meals},
      success: function(data) {
        var sidebar = document.getElementById('sidebar');
        sidebar.innerHTML = "";
        sidebar.append(data);
      }
    });
屏幕上呈现的内容:

<div>ingredientname</div>
<div>ingredientname</div>
<div>ingredientname</div>
数据类型:“html”
添加到
$.ajax()调用中的属性中,如下所示:

echo "<div>".$myvariable."</div>";
    $.ajax({
      method: "POST",
      url: 'meal_list.php',
      dataType: "html",
      data: {meals: meals},
      success: function(data) {
        var sidebar = document.getElementById('sidebar');
        sidebar.innerHTML = "";
        sidebar.append(data);
      }
    });
这将通知调用希望在响应正文中返回HTML数据。

只需替换即可

sidebar.innerHTML = "";
sidebar.append(data);

要回答您的评论,可以在jquery中使用append和以下命令

$(sidebar).append($(data))
因此,需要使用jquery的append,而不是来自DOMAPI的append,DOMAPI只接受参数中的节点元素。如果您仍然需要使用dom api的附加,请使用以下方法:

sidebar.append(document.createRange().createContextualFragme‌​nt(data))

$(“#sidebar.append(JSON.stringify(data));你能从网络面板粘贴服务响应吗?我试过了,但它仍然将div标记打印成字符串。我不知道为什么会这样,但它会这样。我猜它与append函数有关?谢谢。)append接受节点元素,所以如果您仍要使用该元素,则可以在循环中使用document.createElement api或在侧栏中使用sidebar.append(document.createRange().createContextualFragment(数据))
$(sidebar).append($(data))
sidebar.append(document.createRange().createContextualFragme‌​nt(data))