繁体   English   中英

Javascript 如何使用 API 检索数据

[英]Javascript How to retrieve data using API

我想连接到 API 并从中检索数据。 我需要在 Hubspot CMS 上执行此操作。

这是 API 的链接:
https://staging.tabsera.com/apiDoc/#api-landing-getCourses

我尝试使用 Codepen 示例执行此操作,但即使控制台未显示任何错误,它也未显示数据:

const courses = document.getElementById('courses'),
url = 'https://staging.tabsera.com/api/v1/landing/courses';

const createNode = element => {return document.createElement(element);};
const append = (parent, el) => {return parent.appendChild(el);};

fetch(url).
then(response => {return response.json();}).
then(data => {
  let courses = data.results;
  return courses.map(courses => {
    let english = createNode('<div class="english">'),
    img = createNode('img'),
    span = createNode('span');
    img.src = runner.picture.medium;
    span.innerHTML = `${courses.english.author} ${courses.name.last}`;
    append(div, img);
    append(div, span);
    append(div, div);
  });
}).
catch(error => {console.log(error);});

https://codepen.io/zestweb/pen/zYqeNMr

任何帮助都受到高度赞赏。

请尝试一下。

const ul = document.getElementById('runners'),
url = 'https://staging.tabsera.com/api/v1/landing/courses';

const createNode = element => {return document.createElement(element);};
const append = (parent, el) => {return parent.appendChild(el);};

fetch(url).
then(response => {return response.json();}).
then(data => {
  let courses = data.courses;
  for (course in courses) {
    runners = courses[course];
    runners.map(runner => {
      let li = createNode('li'),
      span = createNode('span');
      span.innerHTML = `${runner.author}`;
      append(li, span);
      append(ul, li);
    });
  }
  
}).
catch(error => {console.log(error);});

您的回复中没有results字段,请直接尝试courses

fetch('https://staging.tabsera.com/api/v1/landing/courses')
  .then(response => response.json())
  .then(data => console.log(data.courses))

我使用了 axios; 我有你需要的东西。 这是一个简单的方法。

var axios = require('axios');
var qs = require("querystring");

axios("https://staging.tabsera.com/api/v1/landing/courses", {
    method: "GET"
})
    .then(response => {
        console.log("Application data");
        console.log(response.data.courses.English);
    })
    .catch(err => {
        console.log("**************Get access token error**************")
        console.log(err)
    });

您可以在let courses = data.results;行之前添加日志行console.log(data) let courses = data.results;

在那里,您可以在浏览器的控制台窗口(如下所示)中看到数据对象包含课程属性而不是结果。 courses: Arabic: []English: [{…}]Maths: []Science: [{…}]Social: []

所以你可以let courses = data.courses;课程的阅读let courses = data.courses;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM