ПОСТ записаться / оговорка - CORS Политика проблемы - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь опубликовать словарь с данными для бронирования. Но 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);
  }

1 Ответ

1 голос
/ 11 июля 2019

Если вы установили только allowHeaders, вы разрешите эти параметры, и если он получит другие параметры, он никогда не отправит перекрестные заголовки, и Chrome выдаст ошибку.нужны они.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...