[英]Unable to hit spring boot Rest API from my angular 5 project
我正在准备一个基于微服务的示例应用程序,我想在该应用程序中找到用Spring Boot编写的后端API。 现在,我希望它从我的angular 5 UI应用程序中运行。
但是变得低于错误。 我做了ctrl + F12,从控制台我得到了以下错误。
无法加载http:// localhost:8080 / contacts :所请求的资源上没有“ Access-Control-Allow-Origin”标头。 因此,不允许访问源' http:// localhost:4200 '。
您需要在基于Spring Boot的微服务中允许CORS( 跨域资源共享 )。
Pivotal团队的本教程很好地解释了如何在Spring Boot应用程序中实现CORS支持:
https://spring.io/blog/2015/06/08/cors-support-in-spring-framework
如果您使用的是Spring Boot,建议仅声明一个WebMvcConfigurer bean,如下所示:
@Configuration
public class MyConfiguration {
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurerAdapter() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**");
}
};
}
}
我建议使用角度代理配置。
1)在前端根目录(package.json文件旁边)中创建一个新文件。 您可以随意命名文件,例如proxy.config.json。 该文件包含一个javascript对象。
{
"/api/*": {
"target": "http://localhost:8080",
"secure": false
}
}
2)将“ ng start”脚本更改为package.json以"start": "ng serve --proxy-config proxy.config.json"
3)重新启动cli服务器(如有必要)
从angular-cli服务器到/ api的每个调用都将重定向到http:// localhost:8080 / api 。 这样,您不必触摸CORS配置,也不会影响生产安全性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.