如何通过 angular 访问 eureka 服务器上的 rest API
How to access rest API that is on eureka server by angular
如何通过 angular 客户端访问 eureka 服务器上的 rest API。
这就是我现在的状态。它正在工作,但我想在没有端口号的情况下访问 api。
ngOnInit() {
this.http.get('http://localhost:8080/product/'+localStorage.getItem('Id'))
.subscribe((response) => {
this.response = response;
console.log(this.response);
})
}
这个端口号在这里是因为你在本地开发,在生产中你会配置一个路由规则,用户是看不到的。
如果你真的想从你的开发机器上删除端口号,请尝试使用 angular proxy.
您必须启用 cors,因为 angular 正在阻止它,因为您必须将这段代码添加到用 @EnableZuulProxy 注释的 class 应该可以解决问题。
</p>
<pre><code>@Bean
public CorsFilter corsFilter() {
final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
final CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
config.addAllowedOrigin("*");
config.addAllowedHeader("*");
config.addAllowedMethod("OPTIONS");
config.addAllowedMethod("HEAD");
config.addAllowedMethod("GET");
config.addAllowedMethod("PUT");
config.addAllowedMethod("POST");
config.addAllowedMethod("DELETE");
config.addAllowedMethod("PATCH");
source.registerCorsConfiguration("/**", config);
return new CorsFilter(source);
}
如何通过 angular 客户端访问 eureka 服务器上的 rest API。
这就是我现在的状态。它正在工作,但我想在没有端口号的情况下访问 api。
ngOnInit() {
this.http.get('http://localhost:8080/product/'+localStorage.getItem('Id'))
.subscribe((response) => {
this.response = response;
console.log(this.response);
})
}
这个端口号在这里是因为你在本地开发,在生产中你会配置一个路由规则,用户是看不到的。
如果你真的想从你的开发机器上删除端口号,请尝试使用 angular proxy.
您必须启用 cors,因为 angular 正在阻止它,因为您必须将这段代码添加到用 @EnableZuulProxy 注释的 class 应该可以解决问题。
</p>
<pre><code>@Bean
public CorsFilter corsFilter() {
final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
final CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
config.addAllowedOrigin("*");
config.addAllowedHeader("*");
config.addAllowedMethod("OPTIONS");
config.addAllowedMethod("HEAD");
config.addAllowedMethod("GET");
config.addAllowedMethod("PUT");
config.addAllowedMethod("POST");
config.addAllowedMethod("DELETE");
config.addAllowedMethod("PATCH");
source.registerCorsConfiguration("/**", config);
return new CorsFilter(source);
}