Spring cloud Zuul返回HTTP状态200而不是302

Spring cloud Zuul返回HTTP状态200而不是302,spring-cloud,netflix-zuul,Spring Cloud,Netflix Zuul,我有一个名为Backend(端口:9090)的服务,位于Zuul(端口:8080)后面 浏览器在Zuul上调用GET方法,该方法执行重定向 示例调用: 结果: 浏览器接收Http状态=200 浏览器URL: 浏览器显示:“你好,世界” 预期结果: 浏览器应接收Http status=302并更改URL,从而导致: 浏览器URL: 浏览器显示:“你好,世界” Zuul似乎返回了200,隐藏了重定向,因为它是一个代理服务器 当URL在服务器端的GET方法中定义时,如何在浏览器中实现302重定

我有一个名为Backend(端口:9090)的服务,位于Zuul(端口:8080)后面

浏览器在Zuul上调用GET方法,该方法执行重定向

示例调用:

结果:

  • 浏览器接收Http状态=200
  • 浏览器URL:
  • 浏览器显示:“你好,世界”
预期结果:

  • 浏览器应接收Http status=302并更改URL,从而导致:
  • 浏览器URL:
  • 浏览器显示:“你好,世界”
Zuul似乎返回了200,隐藏了重定向,因为它是一个代理服务器

当URL在服务器端的GET方法中定义时,如何在浏览器中实现302重定向

以下是后端服务:

@SpringBootApplication
public class BackendApplication {

    @RestController
    @RequestMapping
    public class Backend {
        @GetMapping(value = "/hello")
        public String sayHello() {
            return "Hello world";
        }

        @GetMapping(value = "/testredirect")
        public RedirectView sayRandom() {
            return new RedirectView("/hello");
        }

       public static void main(String[] args) {
          SpringApplication.run(BackendApplication.class, args);
       }
    }
}
以下是Zuul的配置:

server:
  port: 8080
zuul:
  routes:
    core:
      sensitive-headers:
      path: /core/**
      url: http://localhost:9090/

注意:spring cloud->Edgware.RELEASE

在spring boot RELEASE Edgware.RELEASE中功能已更改

在Edgeware.RELEASE中:返回200和页面内容


在Dalston.SR4中:返回302,浏览器重定向。

您可以在Spring上下文中定义bean

@Bean 
public ApacheHttpClientFactory apacheHttpClientFactory() {
     return new ApacheHttpClientFactory() {
         @Override 
         public HttpClientBuilder createBuilder() {
             return HttpClientBuilder.create()
                     .disableContentCompression()
                     .disableCookieManagement()
                     .useSystemProperties()
                     .disableRedirectHandling();
         }
     }
 }

zuul只是代理结果,不会改变状态。你确定没有发生错误或其他事情吗?我没有看到异常。我得到了正确的内容,但浏览器中的URL不正确。浏览器没有看到302,而是得到200。我不明白,你得到了正确的内容?你能提供一个重现问题的示例项目吗?你的服务并没有像你期望的那样工作。我们有一个确切的场景,如果服务返回302,那么它就会像您期望的那样通过zuul传回。我尝试改进解释并添加一些非常简单的示例代码。