@elysiajs/cors

中文文档
1.4.3发布于 2026/11/05MITTypeScriptESM + CJS零依赖构建来源已验证近 30 天下载 324万

支持 Cross Origin 请求的 Elysia 插件

中文使用文档
文档目录10 节
  1. 安装
  2. 示例
  3. 配置
  4. 来源
  5. 方法
  6. 允许的标题
  7. 已曝光标题
  8. 全权证书
  9. 最大年龄
  10. 飞行前

@elysia/cors (英语)

爱莉西亚 支持跨源请求

安装

bun add @elysia/cors

示例

import { Elysia } from 'elysia'
import { cors } from '@elysia/cors'

const app = new Elysia()
    .use(cors())
    .listen(8080)

配置

来源

@ 默认 true

指定 访问控制- Allow-Origin 头曰.

数值可以是以下之一:

  • string - 直接分配给以下人员的原产地线 Access-Control-Allow-Origin

  • boolean - 如果确定无误,请求来源将反映在 Access-Control-Allow-Origin

  • RegExp - 用于测试请求url的图案,如果匹配,将接受来源.

  • Function - 验证原产地接受与否的自定义逻辑。 如果 true 已返回.

    • 函数将接受 Context 碞钩 Handler
    // Example usage
    app.use(cors, {
        origin: ({ request, headers }) => true
    })
    
    // Type Definition
    type CORSOriginFn = (context: Context) => boolean | void
    
  • Array<string | RegExp | Function> - 试图找到上面所有选项的真伪价值。 如果有的话,会接受请求 true。 。 。 .

方法

@ 默认 *

指派 Access-control-Allow-方法 头曰.

数值可以是以下之一: 接受 :

  • undefined | null | '' - 忽略所有的方法.

  • * - 接受所有的方法.

  • HTTPMethod - 将直接设定为 Access-control-Allow-方法。 。 。 .

    • 期望单个方法或逗号限制字符串( 如“ GET、 PUT、 POST ”)
  • HTTPMethod[] - 允许多种HTTP方法.

    • ['GET','PUT','POST']

允许的标题

@ 默认 *

指派 访问控制- Allow 标题 头曰.

允许带指定信头的请求 .

数值可以是以下之一:

  • string

    • 期望单个方法或逗号限制字符串(如:"Content-Type,授权").
  • string[] - 允许多种HTTP方法.

    • 等: ["Content-Type","授权"]

已曝光标题

@ 默认 *

指派 访问控制- 曝光信头 头曰.

返回指定的信头以 CORS 模式请求 .

数值可以是以下之一:

  • string

    • 期望一种单一方法或逗号限制字符串(如:"Content-Type","X-Powered-By").
  • string[] - 允许多种HTTP方法.

    • 等: ["Content-Type","X-Powered-By"] (中文(简体) )

全权证书

@ 默认 false

指派 Access-control-Allow-证书 头曰.

允许收到的请求发送 credentials 头曰.

  • boolean - 如果设置为 true。 。 。 .

具有信誉的CORS应使用明确的来源许可清单:

cors({
    origin: 'https://app.example.com',
    credentials: true
})

对于后向兼容, cors({ credentials: true }) 反映并信任任何请求来源。 不要对私人 API 使用此配置 .

最大年龄

@ 默认 5

指派 访问控制- 最大年龄 头曰.

允许收到的请求发送 credentials 头曰.

  • number - 以秒计,说明飞行前请求的结果可缓存多久.

飞行前

@ 默认 true

添加 [OPTIONS] /* 处理飞行前请求的处理者 HTTP 204 和CORS提示.

  • boolean - 如果设置为 true。 。 。 .

版本与发布记录

@elysiajs/cors 共发布 49 个版本,首次发布于 2022/12/04;过去 12 个月发布了 3 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.4.3latest2026/11/058 天前
1.4.22026/04/246 个月前
1.4.12025/12/2810 个月前
1.4.02025/09/131.2 年前
1.3.32025/05/151.5 年前
1.3.22025/05/151.5 年前

其他发布通道:next → 1.0.0-beta.2,rc → 1.2.0-rc.0,experimental → 1.3.0-exp.0。

关于 @elysiajs/cors 的常见问题

@elysiajs/cors 是什么?

支持 Cross Origin 请求的 Elysia 插件

如何安装 @elysiajs/cors?

在项目目录运行 npm install @elysiajs/cors,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:elysia(>= 1.4.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@elysiajs/cors 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@elysiajs/cors 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@elysiajs/cors 可以商用吗?

@elysiajs/cors 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@elysiajs/cors 的下载量有多少?

根据 npm 官方下载统计,@elysiajs/cors 在 2026/10/14 – 2026/11/12 这 30 天内被下载 3,240,406 次,日均约 108,014 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@elysiajs/cors 还在维护吗?

最新版本 1.4.3 发布于 2026/11/05(8 天前);至今共发布 49 个版本,其中过去 12 个月发布了 3 个;首次发布于 2022/12/04。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。