Мне пока не удается заставить запросы CORS работать в моем проекте, в основном на сервере Play и веб-клиенте AngularJS.

Поскольку необходимо учитывать множество переменных, я хотел бы сначала убедиться, что все в порядке, по крайней мере, на стороне сервера Play. Но, по моей вине, документации Play 2.4 на CORS недостаточно, чтобы помочь мне. выяснить конкретный вариант использования.

Два основных вопроса:

  1. Создание класса Filters в корне вашего проекта (см. документы): где разместить предоставленный код? Не зная, что такое «корень вашего проекта», я добавил класс в свой контроллер в app/controllers/Mycontr.scala
  2. Пунктов, описанных в документации, достаточно? Или нужно коснуться других частей, например маршрутизации в app/conf/routes

Пытался найти полное руководство, но безуспешно для Play 2.4

1
user2364174 17 Окт 2015 в 15:00

2 ответа

Лучший ответ

«корень вашего проекта» означает каталог, который соответствует корню пакета. По умолчанию это app/, src/main/scala/ при использовании заголовка макет sbt по умолчанию. Это все.

3
kawty 17 Окт 2015 в 12:47

Я сталкиваюсь с той же проблемой, он продолжает говорить:

XMLHttpRequest не может загрузить http: // localhost: 9000 / fetchBetween. Ответ на предполетный запрос не проходит проверку контроля доступа: Нет Заголовок Access-Control Allow-Origin присутствует в запрошенном ресурс. Следовательно, источник "http: // localhost: 3000" не разрешен. доступ. Ответ имел код состояния HTTP 404.

Я добавил Filters.scala в свою папку app/ и добавил filters в libraryDependencies, это моя конфигурация в application.conf:

play.filters.cors {

  pathPrefixes = ["/fetchBetween"]

  allowedOrigins = ["*"]

  allowedHttpMethods = ["GET", "POST"]

  allowedHttpHeaders = ["Accept"]

  preflightMaxAge = 3 days

}
0
Ori Lentz 7 Дек 2015 в 07:01