我在Zuul后面有一个名为Backend(端口:9090)的服务(端口:8080)。
浏览器在Zuul上调用GET方法,该方法执行重定向。
示例调用:http://localhost:8080/testredirect
结果:
预期结果:
似乎Zuul正在返回200,因为它的代理服务器隐藏了重定向。
当在服务器端的GET方法中定义URL时,如何在浏览器中实现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/
注意:春云 - > Edgware.RELEASE
答案 0 :(得分:0)
Spring-boot发行版Edgeware.RELEASE中的功能已更改。
在Edgeware.RELEASE中:返回200,以及页面的内容。
在Dalston.SR4中:返回302,浏览器重定向。
答案 1 :(得分:0)
您可以在Spring上下文中定义一个bean。
@Bean
public ApacheHttpClientFactory apacheHttpClientFactory() {
return new ApacheHttpClientFactory() {
@Override
public HttpClientBuilder createBuilder() {
return HttpClientBuilder.create()
.disableContentCompression()
.disableCookieManagement()
.useSystemProperties()
.disableRedirectHandling();
}
}
}