请求
等待发送
响应
响应内容会显示在这里。
响应头
-
浏览器只与本服务通信,上游密钥保存在 Vercel 环境变量里,不会暴露在前端或网络请求里。
响应内容会显示在这里。
-
把本目录推到 GitHub 后在 Vercel 导入,或直接执行 vercel --prod。至少需要设置 ACCESS_TOKEN。
函数区域已在 vercel.json 设为 hkg1(香港):上游在中国大陆时,默认的 iad1(美国)跨境连接会挂起直到超时。修改区域后必须重新部署才会生效;若 hkg1 仍不通,可换 sin1 或改用国内服务器中转。
| 变量 | 必填 | 说明 |
|---|---|---|
ACCESS_TOKEN | 是 | 客户端访问口令,通过 x-cnptoken(或 x-proxy-token)提交。 |
ALLOWED_ORIGINS | 否 | 允许调用本服务的浏览器来源,逗号分隔,例如 https://xy.odkkk.com;不填则允许所有站点,服务端/curl 调用不受影响。 |
UPSTREAM_KEY | 否 | 服务端保存的上游密钥,默认以 Authorization: Bearer ... 注入请求;仅在配置 ALLOWED_HOSTS 时建议使用。 |
UPSTREAM_KEYS | 否 | JSON 映射,按上游域名分配密钥,优先级高于 UPSTREAM_KEY,例如 {"api.openai.com":"sk-xxx"}。 |
UPSTREAM_KEY_HEADER | 否 | 注入密钥使用的头部名,默认 authorization。 |
UPSTREAM_KEY_PREFIX | 否 | 密钥前缀,默认 Bearer ;使用 x-api-key 类头部时可设为空。 |
ALLOWED_HOSTS | 否 | 允许转发的域名白名单,逗号分隔,支持 *.example.com;不填则允许任意公网域名。 |
UPSTREAM_TIMEOUT_MS | 否 | 上游超时,默认 55000 毫秒(受 Vercel 函数最大执行时长限制)。 |
ALLOW_PRIVATE_HOSTS | 否 | 设为 true 才允许访问内网/本机地址,仅建议本地调试使用。 |
把原请求地址的域名换成代理域名,路径(任意路径,不限 /api/...,根路径也可以)、查询参数和其余请求头都保持不变,只额外加两个头:x-cnptoken 和 x-qulist(原始主机名)。代理固定用 https,把当前路径与查询参数拼到该主机上,并原样转发 authorization、cookie、referer 等头部。
带 x-cnptoken 的请求全部走代理;浏览器直接打开域名(不带该头)时仍显示本测试页。
curl "https://your-app.vercel.app/api/product/taobao/getAuthorizeList?channel=3&version=1.3.3.1" \ -H "x-cnptoken: qQ6wrCGUeY2FPB9zKuyUDeryOMFxOglq" \ -H "x-qulist: api2.goofish.pro" \ -H "content-type: application/x-www-form-urlencoded" \ -H "authorization: <原请求的 authorization>" \ -d 'source='
前端同样只改域名:
fetch('https://your-app.vercel.app/api/product/taobao/getAuthorizeList?channel=3', {
method: 'POST',
headers: {
'x-cnptoken': 'qQ6wrCGUeY2FPB9zKuyUDeryOMFxOglq',
'x-qulist': 'api2.goofish.pro',
'content-type': 'application/x-www-form-urlencoded',
},
body: 'source=',
})
也保留通用方式:直接调用 /api/proxy,用 x-target-url 指定完整地址(测试页即用此方式);请求体、响应体(含 SSE 流式输出)均原样透传。