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

客户端Fetch与服务端Get请求URL配置问题咨询

前后端Fetch与Express Get请求URL配置问题解决

你需要让React客户端的Fetch请求地址和Express服务端的Get路由路径一一对应,才能成功建立通信。以下是具体配置说明和修改后的代码:

服务端(Express)路由配置

Express的app.get()第一个参数是接口的路由路径,需要设置一个明确的路径(比如/api/bitcoin),这样服务端才能识别并处理对应请求。

修改后的服务端代码:

//index.js: url - 'http://localhost:3001'
const express = require("express"); 

const PORT = process.env.PORT || 3001; 

const app = express(); 

// 设置Get请求的路由路径为/api/bitcoin
app.get('/api/bitcoin', (req, res) => {
  console.log("entered bitcoin query!"); 

  let msg = "这里是服务端返回的比特币数据"; // 替换成你的实际数据

  res.json({ message: msg });
}); 

app.listen(PORT, () => {
  console.log(`Server listening on ${PORT}`);
});

客户端(React)Fetch URL配置

因为你已经在React项目中配置了代理http://localhost:3001,所以Fetch时可以直接使用相对路径(对应服务端的路由路径),React会自动将请求转发到代理的服务端地址。

修改后的客户端代码:

//bitcoin page: url - 'http://localhost:3000/bitcoin'
//NOTE: the proxy is: 'http://localhost:3001'
import React from "react"; 
import { Link } from "react-router-dom"; 

function BitCoin() {
  const [data, setData] = React.useState(null); 

  console.log("entered bitcoin page"); 

  React.useEffect(() => {
    // 使用相对路径/api/bitcoin,对应服务端的路由
    fetch("/api/bitcoin")
      .then((res) => res.json())
      .then((data) => setData(data.message))
      .catch(err => console.error("请求出错:", err)); // 增加错误捕获,方便排查问题
  }, []); 

  return (
    <div style={{textAlign:"center", fontFamily:"Comic Sans MC", fontSize:"100"}}>
      THIS IS THE BitCoin PAGE

      <nav>
        <Link to="/"> Home </Link>
      </nav>

      <nav>
        <Link to="/coins"> Coins </Link>
      </nav>

      <p>{!data ? "Loading..." : data}</p>
    </div>
  )
}

export default BitCoin;

关键说明

  • 服务端路由路径和客户端Fetch的相对路径必须完全一致(比如都用/api/bitcoin)
  • 代理配置确保了React客户端的请求会被转发到http://localhost:3001,所以不需要在Fetch中写完整的服务端URL
  • 增加了catch块捕获请求错误,能帮助你排查后续可能出现的问题

内容的提问来源于stack exchange,提问作者MR. potato35

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 10:54:36