一个轻量级的 Chrome 扩展,用于在页面层拦截并模拟 fetch 与 XMLHttpRequest 的网络请求。支持 URL 匹配、方法过滤、开关启用/禁用与 JSON 响应返回,便于前后端联调与本地开发。
- 拦截
window.fetch与XMLHttpRequest请求并返回自定义 Mock 数据 - 支持 URL 匹配模式:
包含与完整匹配 - 支持方法过滤:
ALL、GET、POST、PUT、DELETE - 规则开关:按条启用/禁用,实时生效
- JSON 文本自动解析,解析失败时原样作为字符串返回
- 超时保护:在 1000ms 未返回 Mock 时自动继续真实请求
- 纯前端,无需后端或本地服务
如果你需要更强的可视化与 AI 能力,推荐升级到 AI‑Mock:
- 项目地址:https://github.com/Teernage/AI-Mock
- 使用文档: https://juejin.cn/post/7578793960627486746
- 技术栈:Vue 3 + Vite + Element Plus
- 侧边栏交互:规则管理与编辑体验更流畅
- JSON 树形编辑:双击叶子即可编辑,支持格式化/校验/复制/清空与“放大”弹窗
- AI 生成(DeepSeek):输入接口结构描述,SSE 流式生成 Mock JSON,自动滚动跟随输出
- 更好的提示与异常处理:Token 失效/额度不足等错误明确提示并引导操作
- 搜索与概览:支持按备注/URL 过滤;顶部卡片展示启用/禁用统计
manifest.json扩展清单(MV3)popup.html/popup.css/popup.js规则管理界面content.js注入页面脚本与消息路由injected.js页面内拦截与 Mock 实现ceshi.html示例页面(本地演示用)
- 打开
chrome://extensions/ - 开启右上角的“开发者模式”
- 点击“加载已解压的扩展程序”,选择目录
e:\chrome-mock\quick-mock - 加载后,扩展图标会出现在工具栏;点击图标打开 Mock 规则面板
- 在弹窗中添加规则:
URL 匹配规则:选择包含或完整匹配,输入 URL 或关键词请求方法:选择ALL或具体方法Mock 数据 (JSON):输入 JSON 文本,例如{"code":0,"data":{"msg":"ok"}}
- 管理规则:
- “添加规则”写入存储并立即生效
- “清空全部”删除所有规则
- 列表中每条规则可切换“启用/禁用”或“删除”
- 超过 100 字的 JSON 文本支持展开/收起
- 规则存储位置:
chrome.storage.local,刷新页面后仍保留
- URL:根据选择的模式进行匹配
完整匹配:requestUrl === pattern包含(默认):requestUrl.includes(pattern)
- 方法:
rule.method === 'ALL'或rule.method === requestMethod - 只匹配启用中的规则:禁用状态不参与匹配
content.js在document_start时注入injected.jsinjected.js:- 覆写
window.fetch和XMLHttpRequest的open/send - 对每次请求发送页面内消息
MOCK_REQUEST {url, method, id} content.js收到后读取规则,若命中则回发MOCK_RESPONSE {shouldMock, mockData, status, headers}- 若
shouldMock为真:fetch返回Response(JSON.stringify(mockData), {status, headers})XHR填充readyState=4、status、responseText/response并触发onreadystatechange/onload/onloadend
- 若 1000ms 内无响应或未命中规则,则发送真实网络请求
- 覆写
- 部分站点有 CSP(内容安全策略)可能影响脚本注入;本扩展通过
web_accessible_resources与document_start提前注入,通常可正常工作 - JSON 文本建议保持有效格式;解析失败时以字符串返回
- 如果规则不生效:
- 检查匹配模式与方法选择是否正确
- 在 DevTools Console 查看
[Mock]日志与警告 - 确认扩展已加载,且页面/标签未屏蔽扩展
- 本扩展仅在本地浏览器内运行,不会上报任何数据
- 修改后可在
chrome://extensions/点击“刷新”扩展 - 关键文件:
- 规则界面:
popup.html/popup.css/popup.js - 注入与匹配:
content.js/injected.js
- 规则界面:
- 日志前缀:
[Mock],便于筛选调试信息