Agent Skills
返回列表
EdgeOne CORS 跨域代理

EdgeOne CORS 跨域代理

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_a05442c3/edgeone-function。

技能介绍

问题背景

EdgeOne Pages 托管的静态站点在浏览器里直接 fetch 第三方 API(例如百度 AI 的 OAuth)时,请求往往被同源策略拦住,控制台出现 CORS Error。前端无法改对方服务器的响应头,单靠静态托管也绕不开这条线。

技能如何工作

本技能围绕 Edge Function 作反向代理:浏览器只访问你站点下的路径(如 /api/token),由 Edge Function 在边缘侧转发到真实 API,并在响应里带上 Access-Control-Allow-Origin 等 CORS 头。

典型步骤包括:

  • 在项目根目录按约定放置 edge-functions 目录与路由文件(如 api/token.js)
  • 在函数里组装上游 URL、请求方法与 body,读取上游响应后统一加上 CORS 头再返回
  • 凭证放在 context.env 或控制台环境变量,不要在页面或仓库里硬编码 client_secret、API Key
  • 参考 demo/ 中的 index.html 与 demo/edge-functions/api/token.js 完成本地预览与部署

部署后,前端请求同源代理路径即可拿到 Access Token 等数据,而敏感密钥始终留在服务端。

适用边界与注意点

  • 生产环境务必用环境变量;本地可用配置文件,但勿提交敏感信息。
  • 未配置凭证时应先检查并返回明确错误,避免盲目打上游接口。
  • CORS 头在成功与失败响应里都要一致;Access-Control-Allow-Origin 生产环境建议收窄到具体域名,而不是长期 *。
  • 技能提供的是代理与 CORS 模板思路,具体上游 API 的路径、鉴权方式需按各厂商文档自行调整。

使用场景

  • 在 EdgeOne Pages 上线的活动页需要浏览器侧调用百度 AI,但直连 OAuth 接口被 CORS 拦截
  • 静态前端要拿第三方 Access Token,又不能把 client_secret 写进页面或打包产物
  • 已有 EdgeOne 项目,希望用 `/api/*` 同源路径代理 POST 到外部 REST API
  • 本地用 demo 跑通 token 代理与 CORS 头后,再按同样结构部署到 EdgeOne 生产环境

适合人员

  • 在 EdgeOne Pages 托管官网或 H5、需对接百度等第三方 API 的前端工程师
  • 负责 EdgeOne 边缘函数与 Pages 联调、要统一处理跨域与密钥存放的全栈或运维开发
  • 把静态站点从其他平台迁到 EdgeOne、原先靠自建 Node 代理现在要改成 Edge Function 的维护者
  • 写浏览器端 AI 演示页、必须走服务端换 Token 且遵守「密钥不进前端」规范的安全敏感项目同学