Как правильно прервать запрос, чтобы я мог впоследствии установить заголовки CORS?

#swift #vapor

#swift #vapor

Вопрос:

В настоящее время я прерываю запросы следующим образом (хорошо работает в будущих циклах цепочки событий):

 return request.eventLoop.makeFailedFuture(Abort(.badRequest))
  

Моя конфигурация CORS выглядит следующим образом:

 let corsConfiguration = CORSMiddleware.Configuration(allowedOrigin: .all, allowedMethods: [.GET, .POST, .PUT, .OPTIONS, .DELETE, .PATCH], allowedHeaders: [.accept, .authorization, .contentType, .origin, .xRequestedWith])
    
let corsMiddleware = CORSMiddleware(configuration: corsConfiguration)
app.middleware.use(corsMiddleware)
  

Проблема в том, что CORSMiddleware, похоже, ничего не делает с прерванным запросом. Как мне исправить это, чтобы мой интерфейс мог считывать ошибку, а не блокироваться CORS?

Комментарии:

1. Попробуйте проверить порядок ваших промежуточных программ.

Ответ №1:

Взгляните на документы для CORSMiddleware — поскольку вы хотите, чтобы материал CORS запускался до промежуточного программного обеспечения с ошибкой, вам нужно сначала зарегистрировать его. Единственный способ сделать это — самостоятельно настроить всю цепочку промежуточного программного обеспечения, как описано