与Play的EssentialAction合作

 麻廿_965 发布于 2023-02-11 13:36

我正在使用Play 2.2.1,我正在尝试编写自己的Action来处理CORS请求.我发现了 这个,但不幸的是它没有编译.

仅供参考,这是(稍加修改)的代码:

import play.api.mvc._
import scala.concurrent.ExecutionContext

case class CorsAction(action: EssentialAction) extends EssentialAction {
  def apply(request: RequestHeader) = {
    implicit val executionContext: ExecutionContext = play.api.libs.concurrent.Execution.defaultContext
    val origin = request.headers.get("Origin").getOrElse("*")

    if (request.method == "OPTIONS") {
      val cors = Action { request =>
        Ok("").withHeaders(
          "Access-Control-Allow-Origin" -> origin,
          "Access-Control-Allow-Methods" -> "GET, POST, PUT, DELETE, OPTIONS",
          "Access-Control-Allow-Headers" -> "Accept, Origin, Content-type, Authorization, X-Auth-Token, " +
            "X-HTTP-Method-Override, X-Json, X-Prototype-Version, X-Requested-With",
          "Access-Control-Allow-Credentials" -> "true",
          "Access-Control-Max-Age" -> (60 * 60 * 24 * 30).toString)
      }

      cors(request)
    } else {
        action(request).map(res =>
          res.withHeaders(
            "Access-Control-Allow-Origin" -> origin,
            "Access-Control-Allow-Credentials" -> "true"
      ))
    }
  }
}

错误是:

Cors.scala:13: not found: value Ok

我是Scala的新手,玩游戏更是如此!并且无法弄清楚发生了什么.据我所知,我必须使用EssentialAction而不仅仅是Action b/c我想要获得请求的标题.到目前为止,我发现的所有例子都只涉及Action.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有