位置:首页 > JavaScript > JavaScript中如何使用Fetch发送PATCH请求修改数据

JavaScript中如何使用Fetch发送PATCH请求修改数据

时间:2026-08-18  |  作者:穿越地图的猫  |  阅读:0

用 Fetch 发 PATCH 请求时,method 必须明确写成 "PATCH",同时把 Content-Type 指定为 application/json;请求体需要先通过 JSON.stringify() 做序列化。

若接口带认证,还得补上 Authorization header。拿到响应后,别只顾着取数据,先检查 statusok 这两个属性;尤其是遇到 204 状态时,不要再去解析 JSON。

Ja vaScript 中 Fetch 怎么发送 PATCH 请求修改数据

Fetch 发送 PATCH 请求和发送 POST 或 PUT 类似,关键是正确设置 method"PATCH",并确保请求头,特别是 Content-Type,与后端期望的一致。

明确指定 method 和 Content-Type

PATCH 不是默认方法,必须显式声明。多数 REST API 接收 JSON 数据,所以通常要设 Content-Type: application/json

  • method: "PATCH" —— 必须小写字符串,不能写成 Patchpatch
  • headers 中带上 {"Content-Type": "application/json"},否则后端可能无法解析请求体
  • 请求体用 JSON.stringify() 转成字符串,再传给 body 选项

带认证或自定义 Header 的情况

如果接口需要登录态,比如 Bearer Token,记得把 token 加到 headers 里。

  • 常见做法是读取 localStorage 或变量中的 token
  • header 示例:{"Authorization": "Bearer abc123", "Content-Type": "application/json"}
  • 注意:token 过期会导致 401,建议配合错误处理统一拦截

处理响应和错误

PATCH 成功时一般返回 200 或 204,但也要检查 response.ok 或状态码,避免只靠 then 链。

  • if (!response.ok) throw new Error(...) 主动抛错
  • 对 204 响应(无返回体),调用 response.json() 会失败,可先判断 response.status !== 204
  • 捕获网络错误(如离线)和业务错误(如 400、404)需分开处理

完整示例代码

修改用户邮箱的典型 PATCH 请求:

fetch("/api/users/123", {
method: "PATCH",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
},
body: JSON.stringify({ email: "new@example.com" })
})
.then(res => {
if (!res.ok) throw new Error(`HTTP ${res.status}`);
return res.status === 204 ? null : res.json();
})
.then(data => console.log("更新成功", data))
.catch(err => console.error("更新失败", err));

免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多