Ajax请求问题,在3次中返回未定义的2

时间:2019-06-12 16:56:25

标签: javascript jquery ajax

这可能是一个愚蠢的问题,但是我正在做一个家庭作业项目。它的大多数已经在工作,但是当我尝试在ajax请求中用jquery编写一些html时,三分之二返回undefined。

    $.ajax({
            url: "myurl",
            type: "Get",
            beforeSend: function (xhr) {
                xhr.setRequestHeader("Authorization", "Basic " + btoa(user + ":" + userpass));
            },
            dataType: "json",
        }).
            done(function (data) {
                $('#uebersicht').children(".item").remove();
                for (var i = 0; i < data.length; i++) {
                    $('#uebersicht').append("<p class='item' onclick='deleteitem(" + data[i].id + ")'>" +
                        data[i].datum + ", " + data[i].Stunden + " Stunden - " + data[i].Anmerkungen + "</p>");
                }
            });

我尝试四处搜寻,但我不是很幸运。也许我的搜索才刚刚结束,但是如果有人可以指出正确的方向,我将感到非常高兴。

感谢您的帮助。预先谢谢你。

1 个答案:

答案 0 :(得分:0)

接收到字符串数据后,您需要将其解析为json。

.done(function (data) {
   var data = JSON.parse(data); // Parse it here

   $('#uebersicht').children(".item").remove();
       for (var i = 0; i < data.length; i++) {
         $('#uebersicht').append("<p class='item' onclick='deleteitem(" + data[i].id + ")'>" +
                            data[i].datum + ", " + data[i].Stunden + " Stunden - " + data[i].Anmerkungen + "</p>");
       }
    });
});


// Or you could use the `$.each()` function to loop through the data:

.done(function (data) {
    $('#uebersicht').children(".item").remove();
    $.each(data, function(item, element){
       $('#uebersicht').append("<p class='item' onclick='deleteitem(" + element.id + ")'>" +
                            element.datum + ", " + element.Stunden + " Stunden - " + element.Anmerkungen + "</p>");

    })     
});