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

Vercel部署React项目后调用API返回HTML而非数据的问题求助

React前端部署Vercel后API请求返回index.html的解决办法
  • 核对API请求路径
    先确认前端调用API的路径是否正确。本地开发时用相对路径(比如/api/news)可能没问题,但部署后如果前后端是分开的Vercel项目,直接用相对路径会被前端路由接管,返回React的index.html。必须改成后端的完整域名路径,比如https://你的后端Vercel域名/api/news。

  • 给前端项目加Vercel重写规则
    要是习惯用相对路径调用API,就在前端项目根目录新建vercel.json文件,配置重写规则,把API请求转发到后端:

    {
      "rewrites": [
        {
          "source": "/api/(.*)",
          "destination": "https://你的后端Vercel域名/api/$1"
        }
      ]
    }
    

    这样前端发/api/xxx请求时,Vercel会自动转发到后端对应的接口,不会返回index.html。

  • 检查后端CORS配置
    虽然本地正常,但部署后跨域配置可能没适配生产环境。确保后端用CORS中间件允许前端域名访问,比如Express里这么写:

    const cors = require('cors');
    app.use(cors({ origin: 'https://你的前端Vercel域名' }));
    
  • 配置前端环境变量
    本地和生产环境的API地址不一样,别硬写死代码里。用React的环境变量,比如在.env.production里设置REACT_APP_API_BASE_URL=https://你的后端Vercel域名/api,然后前端请求时用${process.env.REACT_APP_API_BASE_URL}/news,这样部署后自动用生产地址。

内容的提问来源于stack exchange,提问作者Chetan Padhen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 20:32:39