swift - 如何正确中止请求,以便之后设置 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 阻止?
解决方案
查看CORSMiddleware的文档- 因为您希望在错误中间件之前触发 CORS 内容,您需要先注册它。唯一的方法是按照描述自己设置整个中间件链
推荐阅读
- css - Bootstrap 3在移动设备上移动div的位置
- jquery - 无法在 Wordpress 插件中使用 jQuery 脚本
- typescript - 组件装饰器的 vue-loader 解析错误
- javascript - 将输入更改为选项卡
- c# - 为查询的where子句动态生成谓词(''字符串文字')
- java - MariaDB JDBC 驱动程序是否忽略了连接超时?
- ios - 斯威夫特,我可以为一天的一部分时间设置后台提取吗?
- scala - 将参数传递给通过 sbt 执行的 scala 测试
- java - 通过代理访问 Bitbucket API (JSON) [Java]
- java - 如何在@GuardedBy 注解中使用多个互斥锁?