startowy Appplication:Wiosna Cloud - Zuul Proxy produkuje nie 'Access-Control-Allow-Origin' ajax odpowiedź
@SpringBootApplication
@EnableZuulProxy
public class ZuulServer {
public static void main(String[] args) {
new SpringApplicationBuilder(ZuulServer.class).web(true).run(args);
}
}
Mój plik YAML jest tak:
server:
port:8080
spring:
application:
name: zuul
eureka:
client:
enabled: true
serviceUrl:
defaultZone: http://localhost:8761/eureka/
zuul:
proxy:
route:
springapp: /springapp
mam aplikacja mikroserwisowa (na porcie 8081) o nazwie springapp i ma kilka usług odpoczynku. Poniżej jest mój klient app UI:
<html>
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script type="text/javascript" src="js/libs/jquery/jquery.min.js" ></script>
</head>
<body>
<script type="text/javascript">
$.ajax({
url: 'http://localhost:8080/zuul/springapp/departments',
type: 'GET'
}).done(function (data) {
consoe.log(data);
document.write(data);
});
</script>
</body>
</html>
Ale dostaję HTML5 aplikacja
XMLHttpRequest cannot load http://localhost:8080/zuul/springapp/departments. No
'Access-Control-Allow-Origin' header is present on the requested
resource. Origin 'http://localhost:8383' is therefore not allowed access.
Ten interfejs jest http://localhost:8383/SimpleAPp/index.html. CORS, CORS, CORS ... Proszę, pomóżcie. BTW http://localhost:8080/zuul/springapp/departments zwraca listę json, jak przypuszczam, kiedy na pasku adresu przeglądarki. Blog 01.mówi, że nie ma potrzeby stosowania filtra, ponieważ zuulproxy zajmuje się tym, ale nie wiem, dlaczego nie działa on dla mnie.
Dzięki za próbując odpowiedzieć ale powodem dodałem znaczniki jest z powodu @EnableZuulProxy, który pochodzi z chmury wiosennej. W tym poście na spring.io [blog] (http: // spring.io/blog/2015/01/28/the-api-gateway-pattern-angle-js-and-spring-security-part-iv) mówią, że nie ma potrzeby stosowania tego Filtra, o którym wspomniałeś, ponieważ ZuulProxy robi reverse proxy dla klienta zużywającego. Mam nadzieję, że to ma sens. –
Tak, ale jak mówi @zeroflagL poniżej, oznacza to, że musisz wysyłać wszystkie żądania za pośrednictwem serwera proxy. –