这可能是由于跨域问题引起的。要解决这个问题,可以通过添加跨域配置来启用跨域请求。在Spring Boot中,可以使用@CrossOrigin注释或配置CorsFilter类来处理跨域问题。以下是一个使用@CrossOrigin注释的示例:
在Spring Rest服务中添加注释:
@RestController
@RequestMapping("/api")
@CrossOrigin(origins = "http://localhost:4200")
public class MyController {
@GetMapping("data")
public List getData() {
...
}
}
在这个例子中,我们指定了一个来源(http://localhost:4200),因此只有来自这个地址的请求才会被允许访问。
如果您想为所有请求启用跨域支持,您可以在您的Spring Boot配置中添加CorsFilter类。例如:
@Configuration
public class CorsConfiguration {
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
config.addAllowedOrigin("*");
config.addAllowedHeader("*");
config.addAllowedMethod("*");
source.registerCorsConfiguration("/**", config);
return new CorsFilter(source);
}
}
注意,这个配置将为所有请求启用跨域支持,因此请谨慎使用。如果您有严格的安全要求,您可能需要更细粒度的配置。
完成上述配置后,您应该可以在Angular中调用您的Spring Rest服务了。
上一篇:Angular无法导航到子组件。
下一篇:Angular无法定位样式表警告