AngularJS Web 客户端无法从 Scala Play 服务器获取资源

AngularJS web client can't get resource from Scala Play server

当我尝试从 Scala 服务器获取一些数据时,我的浏览器出现异常。 XMLHttpRequest 无法加载 http://localhost:9000/api/v1/animals。请求的资源上不存在 'Access-Control-Allow-Origin' header。 我的 "CorsFilter.scala" 文件:

package filters

import config.{ Global, WebConfig }
import play.api.GlobalSettings
import play.api.mvc.{ Filter, RequestHeader, SimpleResult }

import scala.concurrent.Future

object CorsFilter extends Filter with GlobalSettings {

  lazy val injector = Global.injector

  lazy val webConfig = injector.getInstance(classOf[WebConfig])

  def apply(next: (RequestHeader) => Future[SimpleResult])(request: RequestHeader): Future[SimpleResult] = {
    val result = next(request)
    val origin = request.headers.get("Origin")
    origin.filter(originString => originString.endsWith("animal.list") || originString == webConfig.apiDomain).map { validOrigin =>
      result.map(_.withHeaders(
        "Access-Control-Allow-Origin" -> validOrigin,
        "Access-Control-Expose-Headers" -> "Server-Authorization"))(controllers.executionContext)
    }.getOrElse(result)
  }
}

还有我发送请求的函数:

...
  PlacesService.getAllAnimals = ->
    $http.get('http://localhost:9000/api/v1/animals').then (result) ->
      result.data
...

我应该如何配置服务器来解决我的问题?

我找到了解决办法!添加了这个选项:

... ||originString.startsWith("http://localhost")).map ...