Spring @CrossOrigin не работает с методом DELETE

Аннотация Spring @CrossOrigin не работает с методами DELETE.

Пример кода (в Groovy):

@CrossOrigin
@RestController
@RequestMapping('/rest')
class SpringController {

    @RequestMapping(value = '/{fileName}', RequestMethod.DELETE)
    void deleteFile(@PathVariable fileName) {
        // logic
    }

}

Для этого кода я получаю исключение:

XMLHttpRequest не может загрузить http://localhost:8080/rest/filename.txt. В запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». Таким образом, доступ к источнику 'http://localhost:4200' запрещен. В ответе был код состояния HTTP 404.

Примечания:

  • Я тестировал его в Chrome 58 и Postman 4.10.7.
  • Согласно https://spring.io/guides/gs/rest-service-cors/ по умолчанию @CrossOrigin разрешает только запросы GET, HEAD и POST между источниками. Хотя указание @CrossOrigin(methods = [RequestMethod.GET, RequestMethod.DELETE]) не помогло
  • Я опустил часть кода для краткости. Фактический контроллер также имеет запрос GET по тому же сопоставлению, метод удаления имеет возвращаемый тип и выдает ответ JSON, а также другие мелкие вещи, которые, как я думаю, не влияют на проблему.

person Wizeek    schedule 19.05.2017    source источник
comment
«В ответе был код состояния HTTP 404».   -  person sideshowbarker    schedule 19.05.2017
comment
@sideshowbarker, если я использую запрос GET по тому же URL-адресу, он работает и возвращает файл, поэтому я не вижу, где искать дальше в этом направлении.   -  person Wizeek    schedule 19.05.2017
comment
@Marged Я не могу протестировать его, так как он еще нигде не развернут, и я не могу этого сделать сейчас.   -  person Wizeek    schedule 19.05.2017