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

Vue中使用Fetch发送PATCH请求遇404错误,求排查原因

问题

我希望通过fetch更新部分数据,相关代码如下:

methods: {
    updateEmails() {
      fetch("http://localhost:3000/selectedMailAccounts", {
        method: "PATCH",
        headers: {
          "Content-Type": "application/json",
        },
        body: JSON.stringify(["info@email.com", "email@email.com"]),
      });
    },
  },

调用该函数时,控制台出现如下错误:

PATCH http://localhost:3000/selectedMailAccounts 404 (Not Found)

但在浏览器中打开该URL可以看到对应数据(如下所示),说明资源存在:

[
  "company@email.com",
  "info@gmail.com",
]

请问这一问题的原因是什么?

原因分析

  • 后端未配置PATCH请求的路由:浏览器访问URL用的是GET请求,后端仅配置了该路径的GET请求处理逻辑,没有注册PATCH请求的路由,导致PATCH请求返回404。
  • HTTP方法与路由严格绑定:多数后端框架会把HTTP方法和路径作为路由的唯一标识,即使路径完全相同,不同方法对应不同的路由规则。GET能访问资源,不代表后端支持该路径的PATCH请求。
  • 请求格式不符合后端要求:如果后端对PATCH请求的请求体格式、参数有特定要求,当前请求的body结构不符合预期,也可能被后端判定为无效请求返回404,但这种情况优先级低于前两者,建议先排查路由配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 07:30:24