Неявный метод HTTP OPTIONS Spring возвращает неправильные заголовки ответа «Разрешить»

Я использую Spring 4.3.3 с встроенная поддержка HTTP HEAD и OPTIONS. Я определил свой REST API для поддержки только метода GET, но неявный метод OPTIONS возвращает другие методы HTTP: POST, GET, OPTIONS, HEAD.

Когда я вызываю API с помощью метода POST, я получаю ошибку HTTP 405, как и ожидалось. Почему неявный метод OPTIONS Spring возвращает неправильные заголовки ответа «Allow»?

Моя служба REST:

@Service
@Produces("application/json")
@Consumes("application/json")
@Path("/test")
public class TestJaxrs {
  @GET  
  @Path("/testJaxrs")
  public String test() {
    return "test ok";
  }
}

Фактический заголовок ответа:

Allow: POST, GET, OPTIONS, HEAD

Я ожидаю, что заголовок ответа будет:

Allow: GET

Вы пытаетесь вызвать "/ test / testJaxrs" с помощью POST?

TinyOS 21.11.2018 13:38

Почему вы используете JAX-RS API, когда у вас есть аннотации Spring RestController, GetMapping и т. д.?

Gaurav Srivastav 21.11.2018 13:40

@TinyOS, да, метод POST на URL / test / testJaxrs возвращает HTTP 405

happymeal 21.11.2018 15:16

@GauravSrivastav для класса TestJaxrs, я использую только аннотации JAX-RS и никаких аннотаций Spring, кроме Service. Аннотации Service требуется CXF JAX-RS для сканирования компонентов.

happymeal 21.11.2018 15:20
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
4
92
0

Другие вопросы по теме