在Micronaut中合并IE的CORS响应标头

时间:2019-05-13 14:55:34

标签: internet-explorer cors micronaut

Micronaut发送多个标头,如下所示:

Access-Control-Allow-Headers:   content-type
Access-Control-Allow-Headers: authorization

这使IE混乱,它仅看到第一个标头。这会导致请求错误,例如“ Access-Control-Allow-Headers列表中没有请求头授权。”

如果标题被合并,则IE可以理解:

Access-Control-Allow-Headers:   content-type, authorization

我通过如下替换CorsFilter bean(使用Kotlin)解决了这个问题:

@Replaces(CorsFilter::class)
class OurCorsFilter(corsConfiguration: HttpServerConfiguration.CorsConfiguration) : CorsFilter(corsConfiguration) {

    override fun setAllowHeaders(optionalAllowHeaders: List<*>, response: MutableHttpResponse<*>) {
        response.header(ACCESS_CONTROL_ALLOW_HEADERS, optionalAllowHeaders.joinToString())
    }

}

但是,这对我来说感觉有点过头了,此外,最好将其固定在其他位置。最好使用config来解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

即使在Edge https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/12046299/上,这似乎也是一个问题。请提出问题,我们可能会提供一个配置选项以允许此操作