Бэкэнд java фреймворка play с интерфейсом реакции не возвращает правильный HTTP-ответ

Ниже мой файл application.conf. И обратите внимание, что причина в том, что есть несколько строк, я пробовал несколько комбинаций, чтобы исправить проблему. Но исправить не смог.

Вызов API Fetch в интерфейсе React

fetch('http://localhost:9000/items', {
        method: 'GET'
}).then(
    response => response.json()
).then(
    data => {
        console.info(data);
    }
).catch(
    error => {
        console.error(error);
        console.info('errr');
    }
);

Файл Application.conf

play.filters.hosts {
   allowed = ["."]
}
play.filters.disabled += "play.filters.headers.SecurityHeadersFilter"
play.filters.disabled += play.filters.cors.CORSFilter
play.filters.disabled += play.filters.csrf.CSRFFilter
play.filters.headers.contentSecurityPolicy = "default-src 'self'; img-src 'self' https://my.img.cdn.com"
# disable the built in filters
# play.http.filters = play.api.http.NoHttpFilters
play.filters.enabled += "play.filters.cors.CORSFilter"
play.filters.cors {
  # allow all paths
  pathPrefixes = ["/"]
  # allow all origins (You can specify if you want)
  allowedOrigins = null
  allowedHttpMethods = ["GET", "POST", "PUT", "DELETE"]
  # allow all headers
  allowedHttpHeaders = ["Accept", "Content-Type"]

На изображении ниже показаны параметры запроса, которые реагируют на запросы внешнего интерфейса.

Бэкэнд java фреймворка play с интерфейсом реакции не возвращает правильный HTTP-ответ

Также ниже указаны ошибки и предупреждения в консоли.

Бэкэнд java фреймворка play с интерфейсом реакции не возвращает правильный HTTP-ответ

Потом проверил с удалением заголовков в http запросе. Затем получил 200, отправив запрос GET во вкладке сети. Но выбрано исключение в вызове API выборки Бэкэнд java фреймворка play с интерфейсом реакции не возвращает правильный HTTP-ответ

Так что, похоже, это должна быть проблема cors в игровом API. Но никак не мог разобраться, внося разные изменения в конфиг приложения.

почему фильтр CORS присутствует в списках включенных и отключенных в вашей конфигурации?

LiorH 17.11.2018 19:15

Это просто для проверки на практике. Однако проблема исправлена, спасибо за комментарий.

Yathindra Kodithuwakku 19.11.2018 05:30
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
449
1

Ответы 1

Я исправил проблему, и ниже будет ответ.

play.filters.enabled += "play.filters.cors.CORSFilter"

play.filters.cors {
  allowedOrigins = ["http://localhost:8080", "http://localhost:9000"]
  allowedHttpMethods = ["GET", "POST", "PUT", "DELETE"]
  preflightMaxAge = 3 days
}

Надеюсь, это будет полезно для всех.

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