【发布时间】:2021-06-04 03:47:02
【问题描述】:
我正在尝试使用org.springframework.cloud.gateway.mvc.ProxyExchange 代理转发请求。
通话正常。
在我的场景中,我喜欢将它与浏览器调用集成,但是 在那里得到一个 CORS 标头问题。
(1) 控制器中的来源:
@RequestMapping(value = "/public**", method = RequestMethod.GET)
public ResponseEntity<byte[]> forwardHttpRequestForGet(
HttpServletRequest httpServletRequest,
@RequestParam MultiValueMap<String, String> requestParams,
@RequestHeader HttpHeaders requestHeaders,
ProxyExchange<byte[]> proxy) throws Exception {
ResponseEntity<byte[]> responseEntity = cloudGatewayService.proxyForwardToApplication(httpServletRequest, requestParams,requestHeaders, proxy);
return responseEntity;
}
(2) 使用CloudGatewayService的来源:
public ResponseEntity<byte[]> proxyForwardToApplication(
HttpServletRequest httpServletRequest,
MultiValueMap<String, String> requestParams,
HttpHeaders requestHeaders, ProxyExchange<byte[]> proxy) throws Exception {
String authorizationHeader = httpServletRequest.getHeader(AUTHORIZATION_HEADER);
String forwardUrl = "newUrl"
return proxy.sensitive("cookie")
.headers(requestHeaders)
.uri(forwardUrl).get();
}
如何为 Spring Cloud Gateway 添加 CORS 支持?
【问题讨论】:
-
您是否尝试过按照文档在 application.yml 中添加配置? cloud.spring.io/spring-cloud-gateway/reference/html/…
-
@mehowthe 我已经浏览了文档。会试试这个
标签: java cors spring-cloud-gateway