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