@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。 。 。 .