Scala Play app不加载表单

时间:2017-03-20 23:34:02

标签: scala playframework

我有一个简单的设置:

路线:

# creates new ticket
PUT     /projects/:projectId/tickets    controllers.ProjectsController.add(projectId)

App Controller代码如下所示:

case class TicketData(ticketId: Option[String], ticketName: String, ticketDescription: String)

val addUpdateForm = Form(
mapping(
  "ticketId" -> optional(text),
  "ticketName" -> text,
  "ticketDescription" -> text
)(TicketData.apply)(TicketData.unapply))

def add(projectId: String) = Action { implicit request =>
  val ticket = addUpdateForm.bindFromRequest.bindFromRequest.get

  Ok(Json.toJson(cassandraClient.addTicket(projectId, ticket.ticketName, ticket.ticketDescription)))
}

当我尝试从邮递员发送请求时(尝试了几个组合,我没有oauth)我总是得到403 ...在日志中没有什么真正有用的:

[debug] i.n.u.i.JavassistTypeParameterMatcherGenerator - Generated: io.netty.util.internal.__matchers__.io.netty.channel.ChannelMatcher
[debug] i.n.u.i.JavassistTypeParameterMatcherGenerator - Generated: io.netty.util.internal.__matchers__.io.netty.handler.codec.http.HttpObjectMatcher
[debug] i.n.u.i.JavassistTypeParameterMatcherGenerator - Generated: io.netty.util.internal.__matchers__.io.netty.handler.codec.http.HttpContentMatcher

我在这里遗漏了一些东西,不知道该说些什么。

1 个答案:

答案 0 :(得分:1)

看起来你的CORS配置有问题。

要验证它是否只允许每个请求(在application.conf中):

play.filters.cors {
  pathPrefixes = ["/"]
  allowedOrigins = null
  allowedHttpMethods = ["GET", "POST", "PUT", "DELETE"]
  allowedHttpHeaders = null
} 

这篇文章看起来很相似:

Trouble-shooting CORS in Play Framework 2.4.x