Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 使用React和axios调用Deezer API失败_Reactjs_Axios - Fatal编程技术网

Reactjs 使用React和axios调用Deezer API失败

Reactjs 使用React和axios调用Deezer API失败,reactjs,axios,Reactjs,Axios,我想连接到Deezer API并读取数据,如果您将它们放在那里并在新选项卡中打开,您将看到json格式的数据,但是Axios无法返回它 import React from "react"; import ReactDOM from "react-dom"; import axios from "axios"; import "./styles.css"; class App extends React.Component { componentDidMount() { axi

我想连接到Deezer API并读取数据,如果您将它们放在那里并在新选项卡中打开,您将看到json格式的数据,但是Axios无法返回它

import React from "react";
import ReactDOM from "react-dom";

import axios from "axios";

import "./styles.css";

class App extends React.Component {

  componentDidMount() {
    axios.get("https://api.deezer.com/album/302127")
    .then(response => {
      console.log(response);
    })
    .catch(err => {
      console.log(err);
    });
  }

  render() {
    return (
      <div className="App">
        <h2>Deezer</h2>
      </div>
    );
  }
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
从“React”导入React;
从“react dom”导入react dom;
从“axios”导入axios;
导入“/styles.css”;
类应用程序扩展了React.Component{
componentDidMount(){
axios.get(“https://api.deezer.com/album/302127")
。然后(响应=>{
控制台日志(响应);
})
.catch(错误=>{
控制台日志(err);
});
}
render(){
返回(
迪泽
);
}
}
const rootElement=document.getElementById(“根”);
render(,rootElement);

Deezer api不允许跨源请求。因此,不可能从浏览器调用api

但是,您可以使用变通方法并使用

您需要更改代码,如下所示:

axios.get("https://cors-anywhere.herokuapp.com/https://api.deezer.com/album/302127")
  .then(response => {
    this.setState({ response })
  })
  .catch(err => {
    console.log('error', err);
  });
以下是一个工作示例:

不过,我建议您在自己的后端编写代码,以便调用 迪泽的API。你不会在那里得到交叉原点错误


Deezer api不允许跨源请求。因此,不可能从浏览器调用api

但是,您可以使用变通方法并使用

您需要更改代码,如下所示:

axios.get("https://cors-anywhere.herokuapp.com/https://api.deezer.com/album/302127")
  .then(response => {
    this.setState({ response })
  })
  .catch(err => {
    console.log('error', err);
  });
以下是一个工作示例:

不过,我建议您在自己的后端编写代码,以便调用 迪泽的API。你不会在那里得到交叉原点错误


那么Deezer Javascript SDK呢?任何人都可以在React应用程序中很好地实现这一点,那么Deezer Javascript SDK呢?任何人都可以在React应用程序中很好地实现这一点