如何正确中止请求以便之后可以设置 CORS headers?
How to correctly abort a request so that I can set CORS headers afterwards?
我目前正在通过以下方式中止请求(在链式事件循环期货中效果很好):
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 阻止?
看看 docs for CORSMiddleware - 因为您希望 CORS 东西在错误中间件之前触发,所以您需要先注册它。做到这一点的唯一方法是按照描述自己设置整个中间件链
我目前正在通过以下方式中止请求(在链式事件循环期货中效果很好):
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 阻止?
看看 docs for CORSMiddleware - 因为您希望 CORS 东西在错误中间件之前触发,所以您需要先注册它。做到这一点的唯一方法是按照描述自己设置整个中间件链