Я пытаюсь сделать приложение с загрузкой Spring и Angular 7, в которой есть 2 кнопки, одна показывает список, а другая имеет форму, которая позволяет пользователю добавить в базу данных, первая кнопка работает нормально, но второй не работает, я получаю это сообщение каждый раз
Access to XMLHttpRequest at 'http://localhost:8080/add' from origin 'http://localhost:4200' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.
это код, который я использую:
это код моего весеннего загрузочного приложения
@RequestMapping("/showfpy")
public List<fpy> index() {
return (List<fpy>) fpyRepository.findAll();
}
@PostMapping("/add")
public List<fpy> Add(@RequestBody fpy fpy) {
fpyRepository.save(fpy);
return fpyRepository.findAll();
}
это код в моем Angular проекте
fpy: FPY;
constructor(private route: ActivatedRoute, private router: Router, private fpyservice: FpyServiceService) {
this.fpy = new FPY();
}
onSubmit() {
console.log(this.fpy.produit + this.fpy.date + this.fpy.val_fpy);
this.fpyservice.save(this.fpy).subscribe(result => this.gotofpylist());
}
ngOnInit() {
}
gotofpylist() {
this.router.navigate(['/showfpy']);
}
я добавил эту часть моего основного приложения
@Bean
public FilterRegistrationBean corsFilterRegistration() {
FilterRegistrationBean registrationBean =
new FilterRegistrationBean(new CORSFilter());
registrationBean.setName("CORS Filter");
registrationBean.addUrlPatterns("/*");
registrationBean.setOrder(1);
return registrationBean;}
public class CORSFilter extends GenericFilterBean implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletResponse httpResponse = (HttpServletResponse) response;
httpResponse.setHeader("Access-Control-Allow-Origin", "*");
// httpResponse.setHeader("Access-Control-Allow-Methods", "*");
httpResponse.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, OPTIONS, DELETE");
httpResponse.setHeader("Access-Control-Allow-Headers", "*");
httpResponse.setHeader("Access-Control-Allow-Headers",
"Origin, X-Requested-With, Content-Type, Accept, X-Auth-Token, X-Csrf-Token, Authorization");
httpResponse.setHeader("Access-Control-Allow-Credentials", "false");
httpResponse.setHeader("Access-Control-Max-Age", "3600");
System.out.println("********** CORS Configuration Completed **********");
chain.doFilter(request, response);
}
} // The End...