为什么我不能从奇迹中读到这个网络API?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么我不能从奇迹中读到这个网络API?相关的知识,希望对你有一定的参考价值。

我一直在使用web api,一切都很好。现在我正在尝试使用Marvel的api,我有一个错误。这是我用于所有web apis的代码

 function getPosts(){
         fetch('http://gateway.marvel.com/v1/public/comics?ts=1&apikey=b5dd158dd0e856443db7fb726fbc6bc9&hash=80182fcb24c6426319114b9e34eafed6')
         .then((res) => res.json())
         .then((info) => {
             let output = '<h2 class="mb-4"> Posts </h2>';
             info.forEach(function(post){
                 output +=  `
                 <div class="card card-body mb-3">
                     <h3>${post.data.results.title}</h3>
                 </div>                                
                 `;
             });
             document.getElementById('output').innerhtml = output;
         })
     }

这是我得到的错误 enter image description here

答案

您需要访问结果的实际数组。 您正在将forEach应用于对象,forEach仅对数组mdn docs进行操作 实际的数组在info.data.results中

例如,显示标题:

 function getPosts(){
     fetch('//gateway.marvel.com/v1/public/comics?ts=1&apikey=b5dd158dd0e856443db7fb726fbc6bc9&hash=80182fcb24c6426319114b9e34eafed6')
     .then((res) => res.json())
     .then((info) => {
        info.data['results'].forEach( data => {
          console.log(data.title);
        });
     })
 }
另一答案

你可以在这里尝试这个代码,你可以得到你的标题,你可以在任何html标签中随附你想要的这个标题

$.get('http://gateway.marvel.com/v1/public/comics?ts=1&apikey=b5dd158dd0e856443db7fb726fbc6bc9&hash=80182fcb24c6426319114b9e34eafed6',function(dataObject){
var results=dataObject;
var data=results.data.results;
    $.each(data,function(index,item){
    var title=item.title;
     console.log(title);
    });
});

以上是关于为什么我不能从奇迹中读到这个网络API?的主要内容,如果未能解决你的问题,请参考以下文章

Phong 和 Gouraud 着色 WebGL

为啥我不能从 FragmentPagerAdapter 分离片段?

Java集合类List解读(在云时代架构中读到了)

为啥我不能导入我刚刚安装的包?

为啥我突然不能再创建房间了?

从内存流中读取存储的 PDF