CORS
cors
— это middleware, который реализует
CORS.
import { cors } from '@shelepuginivan/lunatic'
app.use(cors())
app.post('/', (req, res) => { res.status(200).json({ message: 'теперь CORS поддерживается!' })})
app.listen(8000)
cors
— это конфигурируемый middleware, что означает, что оно принимает
объект options
с настройками:
import { cors, CorsOptions } from '@shelepuginivan/lunatic'
const corsOptions: CorsOptions = { origin: 'http://localhost:3000', credentials: true,}
app.use(cors(corsOptions))
app.post('/', (req, res) => { res.status(200).json({ message: 'теперь CORS поддерживается!' })})
app.listen(8000)
Опции конфигурации
origin
Разрешенное происхождение запроса. Поведение зависит от типа аргумента предоставляемый.
boolean
—true
включает CORS для всех источников,false
отключает CORSstring
— конкретный источник, например,http://localhost:3000
.RegExp
— все источники, соответствующие заданному регулярному выражениюstring[]
— все источники, присутствующие в спискеRegExp[]
— все источники, соответствующие одному из заданных регулярных выражений(origin: string) => boolean
— функция-предикат, которая сообщает, разрешено ли разрешено ли происхождение
По умолчанию: "*"
(разрешает CORS для всех оригиналов).
methods
Разрешенные методы запроса. Поведение зависит от типа аргумента.
HttpMethod
— конкретный HTTP-методHttpMethod[]
— любой HTTP-метод из списка
allowedHeaders
Разрешенные заголовки запроса. Поведение зависит от типа аргумента.
string
- конкретный заголовокstring[]
- все заголовки, присутствующие в списке
credentials
Разрешать ли учетные данные (credentials). Принимает значение типа boolean
.
Обратите внимание, что если значение origin равно *
(как по умолчанию),
учетные данные не будут
включены
exposedHeaders
Заголовки ответа, которые могут быть доступны в браузерного JavaScript. Поведение зависит от типа аргумента.
string
- конкретный заголовокstring[]
- все заголовки, присутствующие в списке
maxAge
Настраивает
Access-Control-Max-Age
заголовок. Принимает аргумент типа number
, которое является значением в
секундах.
corsErrorStatus
Статус ответа, если CORS не разрешен для данного запроса. Принимает аргумент
типа number
.
По умолчанию: 403
preflightSuccessStatus
Статус ответа для предварительных
OPTIONS
запросов. Принимается аргумент типа number
.
По умолчанию: 204