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

Vercel部署应用后出现Request failed with status code 405错误求助

问题描述
405错误修复方案

405错误本质是HTTP请求方法不被目标接口允许,结合Vercel部署场景,按以下步骤排查修复:

  1. 核对前后端请求方法一致性
    检查前端发起请求的方法(如POST/GET/PUT)和后端路由定义的方法是否完全匹配。比如前端用POST请求某接口,但后端仅配置了GET路由,就会触发405。

  2. 修正Vercel后端路由配置
    Vercel部署Node.js后端时,需确保vercel.json配置正确,示例配置(适配Express框架):

    {
      "rewrites": [
        { "source": "/api/(.*)", "destination": "/api/$1" }
      ],
      "headers": [
        {
          "source": "/api/(.*)",
          "headers": [
            { "key": "Access-Control-Allow-Methods", "value": "GET, POST, PUT, DELETE, OPTIONS" },
            { "key": "Access-Control-Allow-Origin", "value": "https://doithero.vercel.app" }
          ]
        }
      ]
    }
    

    若后端用Serverless函数,需将函数文件放在api目录下,文件名对应路由(如api/task.js对应/api/task接口)。

  3. 处理CORS预请求(OPTIONS)
    跨域场景下前端会先发送OPTIONS预请求,若后端未处理该方法会导致405。可通过两种方式解决:

    • 使用cors中间件(Express框架):
      const cors = require('cors');
      app.use(cors({
        origin: 'https://doithero.vercel.app',
        methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS']
      }));
      
    • 手动处理OPTIONS请求:
      app.options('*', (req, res) => {
        res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
        res.header('Access-Control-Allow-Origin', 'https://doithero.vercel.app');
        res.sendStatus(200);
      });
      
  4. 确认前端请求地址正确性
    替换前端硬编码的本地后端地址为Vercel部署后的线上地址,建议用环境变量存储接口地址,避免部署时遗漏修改。

内容的提问来源于stack exchange,提问作者Sujal Tangde

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 21:52:14