【问题标题】:How to correctly abort a request so that I can set CORS headers afterwards?如何正确中止请求,以便之后设置 CORS 标头?
【发布时间】:2020-10-02 13:23:53
【问题描述】:

我目前正在通过以下方式中止请求(在链式事件循环期货中效果很好):

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 阻止?

【问题讨论】:

  • 尝试检查中间件的顺序。

标签: swift vapor


【解决方案1】:

查看docs for CORSMiddleware - 因为您希望在错误中间件之前触发 CORS 内容,您需要先注册它。唯一的方法是按照描述自己设置整个中间件链

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-29
    • 1970-01-01
    • 2014-11-09
    • 2017-03-23
    • 1970-01-01
    • 1970-01-01
    • 2018-03-31
    相关资源
    最近更新 更多