首页 > 解决方案 > “DedupeResponseHeader”不适用于 Greenwich.SR3

问题描述

DedupeResponseHeader在 Spring Cloud Greenwich.SR3中对我不起作用,我在 application.yml 中添加了 CORS 配置,下游应用程序也在响应标头中发送 Access-Control-Allow-Origin,最终结果为:

“Access-Control-Allow-Origin”标头包含多个值“http://localhost:4200, http://localhost:4200”,但只允许一个。

在此处输入图像描述

我使用了 DedupeResponseHeader但这对我不起作用仍然在浏览器控制台中看到相同的错误。以下是 CORS 和DedupeResponseHeader的配置:

spring:
  cloud:    
   gateway:
    default-filters:
    - DedupeResponseHeader=Access-Control-Allow-Origin, RETAIN_UNIQUE
    globalcors:
      add-to-simple-url-handler-mapping: true
      corsConfigurations:
        '[/**]':
          allowedOrigins: "http://localhost:4200"
          allowedMethods: "*"
          allowedHeaders: "*"

也试过过滤器,但也没有用

spring:   
  cloud:    
    gateway:
      routes:
      - id: dedupe_response_header_route
        uri: http://localhost:4200
        predicates:
        - Method=OPTIONS
        - Method=GET
        filters:
        - DedupeResponseHeader=Access-Control-Allow-Origin

无法弄清楚它不起作用的原因,仔细检查了spring cloud版本。我很感激,如果有人可以帮助理解为什么 DedupeResponseHeader 不起作用。

标签: spring-cloudspring-cloud-gateway

解决方案


您可以使用最新版本的 spring cloud 即 2020.0.2 --- 它在那里完美运行。


推荐阅读