node.js - 如何从 Express API 获取数据并将其显示到 React 应用程序?

标签 node.js reactjs api express localhost

我最近开始学习 React,我正在尝试创建一个应用程序,该应用程序使用我使用 Express 创建的 API。

目前我在本地托管我的 Express API http://localhost:3000/api

但是,当我打开 postman 或浏览器并向 http://localhost:3000/api/tasks 发送 GET 请求时正如预期的那样,我获得了 API 上的所有任务。

我的 react 应用程序如下所示

class App extends React.Component{
  constructor(){
    super()
    this.state = {
      tasks: {}
    }
  }
...
  componentDidMount() {
     this.setState({loading: true})
     fetch("http://localhost:3000/api/tasks/1")
       .then(response => response.json())
       .then(data => {
         this.setState({
           tasks: data
         })
       })
   }
...
  render() {
    return(
      <div>
        <p>{this.state.tasks.id}</p>
      </div>
  }
}

当我在浏览器中打开“开发”选项卡时,我可以看到请求(代码:304)已发送,并且有一个响应,该响应是一个包含我需要的对象的 json 文件。尽管如此,我无法显示从 API 获取的数据。

最佳答案

问题是 CORS 未启用!添加后:

app.use(function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization");
    res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS');
    next();
});

对于 Express API 的 index.js 文件,我能够从 API 获取数据并将其显示到 React 应用程序。

关于node.js - 如何从 Express API 获取数据并将其显示到 React 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60425501/

相关文章:

java - Socket.io 类异常

reactjs - 如何在 React-Native 中渲染 svg 图像?

javascript - 使用 Materialize 添加自定义样式以响应元素

php - 如何使用 YouTube API 获取视频时长?

Python Flask REST API MySQL 获取游标键和值

sql - 如何在 SQL 中将 ENUM 数据类型设为小写?

javascript - 从服务器向客户端发送消息socket.io

javascript - Electron js在main.js之外使用desktopCapture

javascript - 自动更新package.json中的依赖项

javascript - 传单弹出窗口不会打开( react )