面向 API 开发/测试的 Chrome 扩展:绕过 CORS 发请求、自动生成 cURL,并对 YApi「运行」页做增强(内嵌 cURL、路径参数 {param} 引导填写)。
本仓库包含生态内的 CLI/MCP 子项目:packages/yapi-mcp(发布包名保持为 @leeguoo/yapi-mcp,不影响扩展打包)。
crossRequest,由扩展后台代发{param} 时提示填写,避免请求失败$.ajax / fetch / 脚本能力Chrome Web Store(推荐)
https://chrome.google.com/webstore/detail/efgjanhcajpiljllnehiinpmicghbgfm
开发者模式
git clone https://github.com/leeguooooo/cross-request-master.git
cd cross-request-master
./build-extension.sh
然后在 chrome://extensions/ 开启开发者模式 → “加载已解压的扩展程序” → 选择 build/。
安装后直接在 YApi「运行」页发送请求即可,扩展会自动处理跨域、显示 cURL,并把 JSON 响应解析为对象供脚本使用。
在接口详情页(基本信息区域右上角)额外提供:
扩展在页面侧额外暴露 window.crossRequest.yapiMcp(也可用 window.crossRequest.yapi),把 YApi OpenAPI 封装成与 Yapi-MCP 一致的 5 个方法,方便直接在浏览器控制台/脚本里操作接口文档:
// 先配置(支持多项目:'28:token1,29:token2')
window.crossRequest.yapiMcp.configure({
baseUrl: 'https://your-yapi-domain.com',
token: '28:your_project_token'
});
// 查接口、拉分类、搜索、保存
const api = await window.crossRequest.yapiMcp.yapi_get_api_desc({ projectId: '28', apiId: '66' });
window.crossRequest({
url: 'https://api.example.com/data',
method: 'GET',
headers: { Authorization: 'Bearer token' },
success(res) {
console.log('Success:', res);
},
error(err) {
console.error('Error:', err);
}
});
crossRequest 也会返回 Promise:
const resp = await window.crossRequest({ url: '/api/ping' });
console.log(resp.status, resp.data);
$.ajax。如需关闭:crossRequest: falsecrossRequest: true$.ajax({
url: 'https://api.example.com/data',
method: 'GET',
crossRequest: true
});
const fd = new FormData();
fd.append('file', fileInput.files[0]);
fd.append('name', 'demo');
await window.crossRequest({
url: 'https://api.example.com/upload',
method: 'POST',
body: fd
});
仓库内置 types/cross-request.d.ts,可直接复制到你的项目并在 tsconfig.json 中 include,或在 global.d.ts 引用:
/// <reference path="./types/cross-request.d.ts" />
Access-Control-Request-Headers:这是浏览器 CORS 预检行为,需要服务端正确返回 Access-Control-Allow-Headers。项目结构:
manifest.json MV3 配置
background.js Service Worker
content-script.js 注入/通信
index.js 页面侧 API 与适配器
src/helpers/ 可复用 helper
tests/ Jest 单测
常用命令:
pnpm install
pnpm test
pnpm lint
pnpm format
./build-extension.sh
CONTRIBUTING.md如果你觉得这个项目对你有帮助,可以请作者喝杯咖啡:
GitHub Sponsors
微信 / 支付宝
见 CHANGELOG.md。
docs/TESTING.mddocs/ROADMAP.mddocs/STORE_SUBMISSION_GUIDE.mddocs/CHROME_WEB_STORE_CHECKLIST.md