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

如何向Vercel上部署的API发起请求?请求返回异常求助

问题分析与解决方案

你的API请求返回客户端页面内容,核心原因是vercel.json的路由规则把所有请求(包括/api开头的)都转发到了客户端根路径,导致Node.js API没有接收到请求。

解决方案:调整路由优先级

修改vercel.json,让API路径的请求优先被Node.js处理,剩下的请求再交给客户端路由:

{
  "version": 2,
  "builds": [
    {
      "src": "./index.js",
      "use": "@vercel/node"
    },
    // 如果客户端是静态资源/单页应用,添加这个构建规则(根据实际客户端类型调整)
    {
      "src": "client/**",
      "use": "@vercel/static"
    }
  ],
  "routes": [
    // 优先处理所有/api开头的请求
    {
      "src": "/api/(.*)",
      "dest": "/index.js"
    },
    // 处理客户端路由:单页应用需指向入口HTML,静态文件则直接映射路径
    {
      "src": "/(.*)",
      "dest": "/client/index.html"
    }
  ]
}

关键说明

  1. 路由匹配顺序:Vercel按路由数组的顺序匹配请求,因此API规则必须放在客户端路由规则前面,避免被覆盖。
  2. 客户端路径适配:如果你的客户端不是单页应用,而是普通静态文件结构,第二条路由的dest可以改为/client/$1,直接映射请求到client目录下的对应文件。
  3. API入口验证:确保index.js中已通过routes.js正确处理/api开头的请求逻辑,比如解析路由、处理业务并返回接口数据。

内容的提问来源于stack exchange,提问作者Life Star

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 21:05:13