在Scala的Play Framework 2.4中实现CORS

时间:2015-10-17 12:00:27

标签: scala cors playframework-2.4

我还没有成功地在我的项目中使用CORS请求,基本上是Play服务器和AngularJS Web客户端。

由于需要考虑很多变量,我首先要确保至少在Play服务器端一切正常。但是,我的错,Play 2.4 documentation on CORS不足以帮助我弄清楚具体的用例。

两个基本问题:

  1. 在项目的根目录中创建一个Filters类(请参阅docs):在哪里放置提供的代码?不确定“项目的根目录”是什么,我在app/controllers/Mycontr.scala
  2. 中将该类添加到我的控制器中
  3. 文档中描述的要点是否足够?或者也需要触摸其他部分,例如app/conf/routes
  4. 中的路由

    试图找到一个完整的教程,但没有运气Play 2.4

2 个答案:

答案 0 :(得分:3)

“项目的根目录”是指与程序包根目录对应的目录。使用default sbt layout时默认为app/src/main/scala/。就是这样。

答案 1 :(得分:0)

我遇到同样的问题,它一直在说:

  

XMLHttpRequest无法加载http://localhost:9000/fetchBetween。   对预检请求的响应没有通过访问控制检查:否   '访问控制允许 - 来源'标题出现在请求的上   资源。起源' 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

}