【问题标题】:Fetching data from API but no data are being displayed in html从 API 获取数据但没有数据显示在 html 中
【发布时间】:2021-08-28 22:55:44
【问题描述】:

我正在尝试从 API 获取一组特定的数据,如下面的代码所示。仅获取足球主队的名称并将其显示到表格中。

我没有收到任何错误,但我的表格中没有显示任何数据。

xhr.onreadystatechange = function()
    {
        if(this.readyState == 4 && this.status == 200)
        {
            //document.getElementById('text').innerHTML = this.responseText;
            const obj = JSON.parse(this.responseText);
            
             
            for (var i=0; i<obj.length; i++) 
            {
               var row = $('<tr><td>' + obj.response[i].teams.home.name + '</td></tr>');
               $('#myTable').append(row);


            }

        }
    }

    xhr.onerror = function()
    {
        console.log('Request Error');
    }

    xhr.send();
}

在做console.log(obj)时

【问题讨论】:

  • 看来你得把'this'改成'xhr'? xhr.readyState, xhr.status, xhr.responseText
  • @Eddy 仍然没有变化

标签: html ajax xml api


【解决方案1】:

你可以something like this

    xhr.onreadystatechange = function()
    {
        if(xhr.readyState === XMLHttpRequest.DONE && xhr.status == 200)
        {
            //document.getElementById('text').innerHTML = this.responseText;
            const obj = JSON.parse(xhr.responseText);
            
             
            for (var i=0; i<obj.response.length; i++) 
            {
               var row = $('<tr><td>' + obj.response[i].teams.home.name + '</td></tr>');
               $('#myTable').append(row);


            }

        }
    }

    xhr.onerror = function()
    {
        console.log('Request Error');
    }

    xhr.send();

【讨论】:

  • Eddy 在评论中是正确的,我已经用参考和改进的代码添加了答案
  • 我尝试了您的代码和引用网站的代码,但仍然没有任何变化。我用随机数据创建了一个 json 文件,并尝试从 json 文件中获取,只是为了查看代码是否正常工作,但仍然遇到同样的问题
  • 您是否尝试记录解析响应console.log(JSON.parse(xhr.responseText))?这个输出是什么
  • 你也可以在 if 条件之外console.log(xhr.status),这样你就可以看到请求的响应
  • 我添加了一张 console.log 给我的图片
猜你喜欢
  • 1970-01-01
  • 2022-01-23
  • 2021-03-11
  • 1970-01-01
  • 1970-01-01
  • 2020-04-03
  • 2022-06-13
  • 2023-02-22
  • 1970-01-01
相关资源
最近更新 更多