You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何搭建Express代理对接React以解决CORS跨域请求头错误

问题修正方案
  • 服务端代码存在语法错误+逻辑缺失:你写的await没有放在async修饰的函数内,路由回调没有接收请求、响应参数,也没有将第三方接口返回的数据传递给前端
  • 前端请求地址错误:仍然直接调用第三方接口,没有走本地代理服务

修正后的完整代码

1. server.js代码

const express = require("express")
const app = express()
const cors = require("cors")
const axios = require("axios")

app.use(cors())

// 新增async修饰,同时接收req、res参数
app.get("/", async (req, res) => {
  try {
    // 此处请把占位符替换为你自己的实际apikey
    const apiResponse = await axios.get("https://superheroapi.com/api/替换为你的apikey")
    // 将第三方接口返回的结果传递给前端
    res.json(apiResponse.data)
  } catch (err) {
    console.error("请求第三方接口失败:", err)
    res.status(500).json({error: "接口请求失败"})
  }
})

app.listen(3001, ()=>{
  console.log("express代理服务已启动,端口3001");
})

2. App.js代码

import './App.css';
import axios from 'axios';
import { useEffect } from 'react';

function App() {
  // 请求放到useEffect中,避免组件重复渲染时重复触发请求
  useEffect(() => {
    const getAPI =  {
      method: "GET",
      // 改为请求本地代理服务地址
      url: "http://localhost:3001",
    }
    axios.request(getAPI)
    .then((response) => {
        console.log("接口返回数据:", response);
    })
    .catch((error) => {
        console.error("请求错误:", error);
    });
  }, [])

  return (
    <>
    <h1>hello world</h1>
    </>
  );
}

export default App;

启动步骤

  • 先在服务端代码所在目录安装依赖:npm install express cors axios
  • 启动代理服务:node server.js,看到控制台打印启动日志后再启动React项目即可正常调用接口

内容的提问来源于stack exchange,提问作者Amadeo de la Peña

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 23:42:00