Я пытаюсь опубликовать словарь с данными для бронирования. Но Chrome регистрирует эту ошибку: Access to XMLHttpRequest at 'http://localhost:8080/reservations' from origin 'http://localhost:4200' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Это странно, поскольку я могу публиковать изображения, видео, html-контент, потому что я размещаю аннотацию @CrossOrigin
над моими контроллерами. Но с этим конкретным почтовым запросом он не работает.
контроллер покоя:
@CrossOrigin(origins="http://localhost:4200",
maxAge=2000,allowedHeaders="header1,header2",
exposedHeaders="header1",allowCredentials= "false")
@RestController
public class ReservationsController {
private ReservationDao dao;
@Autowired
public ReservationsController(ReservationDao dao) {
this.dao = dao;
}
@PostMapping("/reservations")
public Map<String, String> bookReservation(@RequestBody Map<String, String> reservation) {
System.out.println(reservation);
return null;
}
}
угловой api bookReservation метод:
bookReservation(data) {
console.log(data);
const result = this.http.post(this.apiUrl + 'reservations', data).subscribe(
(val) => {
console.log('POST call succesful value returned in body',
val);
},
response => {
console.log('POST call in error', response);
},
() => {
console.log('The POST observable is now completed');
});
console.log(result);
}