首页 > 解决方案 > 在响应中调用函数以从 componentDidMount 获取 API 数据

问题描述

我无法使用从 API 调用的函数从 API 获取数据componentDidMount

我想做的是使用 a 从 API 获取数据getData(),但我不明白如何从componentDidMount.

import React, { Component } from "react";
import axios from "axios";

class AJAX extends Component {
   constructor(props) {
     super(props);
     this.state = {
       quote: ""
     };
   }

   getData = async () => {
      console.log("Inside getData");
      const data = await axios.get("https://api.github.com/zen");
      return data;
   };

   async componentDidMount() {
      console.log("inside compo");
      let data1 = await this.getData();
      console.log(data1);
   }

   render() {
      return (
        <h1>"Hello"</h1>
      );
   }
}

export default AJAX;

错误:我得到的是这个

Request failed with status code 403

标签: reactjs

解决方案


给定的错误是关于授权的。你必须授权调用api。对于授权,您必须像这样传递令牌参数:

const token = '..your token..'

axios.post(url, {
  //...data
}, {
  headers: {
    'Authorization': `Basic ${token}` 
  }
})

推荐阅读