最常见原因是未阻止表单默认提交或按钮类型错误;若按钮在内且为type="submit",会触发页面刷新中断fetch,应改为type="button"或调用event.preventdefault()。

点击按钮触发 Fetch 请求,数据发不出去?
最常见原因是没阻止表单默认提交,或者按钮类型没设对。如果按钮在 <form></form> 里,且没写 type="button",点一下就会刷新页面,Fetch 还没发完就中断了。
- 确保按钮写成
<button type="button">关注</button>,别用type="submit" - 如果用了
<form></form>,要么给它加onsubmit="return false;",要么在事件监听里调event.preventDefault() - Fetch 默认不带 cookie,登录态可能丢失,需要显式加
credentials: "include"
发送关注数据时该用 POST 还是 PUT?
语义上,“关注”是创建一个关系(用户 A 关注用户 B),属于资源创建行为,HTTP 方法首选 POST。有些 API 用 PUT /api/follows/{target_id} 也合理,但前提是后端约定该路径幂等——重复请求不会产生多个关注记录。
- 前端统一用
POST更稳妥,不用猜后端是否幂等 - 请求体推荐
application/json,传{ "target_id": 123 },别用 URL 参数拼接 - 避免用
GET发关注请求——缓存、浏览器历史、代理日志都可能泄露用户行为
Fetch 成功但后端没收到数据?检查这三处
不是后端问题,大概率是前端请求配置漏了关键项。尤其容易忽略 Content-Type 头和 body 序列化。
使用 Puppeteer + Chrome 将 HTML 渲染为中文 PDF,自动处理图表等待、Tab 展开、动画、测高、白边消除、防分页,适用于看板、报表、网页和交互图表转 PDF。
-
headers必须包含{"Content-Type": "application/json"},否则某些后端(如 Express 默认)会忽略请求体 -
body必须是字符串,不能直接传对象:JSON.stringify({ target_id: 123 }) - 确认后端接口路径正确,比如
/api/v1/follow和/api/v1/follows差一个 s 就 404
关注按钮状态怎么同步更新?别只改文字
光把“关注”改成“已关注”不够,还得处理视觉反馈、禁用状态、以及失败回滚。用户点了没反应,比报错更让人焦虑。
- 点击后立刻
button.disabled = true,防止重复点击 - 成功后更新文案和样式(比如加
class="active"),同时存个本地标记:localStorage.setItem("followed_123", "true") - 失败时要恢复按钮状态,并提示具体错误:
err.message或后端返回的error.message,别只写“操作失败”
真正麻烦的是并发场景:用户快速点两次,或网络延迟导致多次请求发出。后端防重是底线,前端加节流或 pending 状态锁也很必要。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










