西洛!我有以下代码:
def foo = Action { request =>
Ok(request.body.asText.getOrElse("no body"))
}
在前端有这样的表格:
<form action="@controllers.routes.Application.foo()" method="POST">
<input name="name" type="text">
<input name="surname" type="text">
<button type="submit">
</form>
如果我填写表单并单击“提交”,他们会给我结果:没有正文。 但是如果我将调试器中的刹车点添加到Ok(..),他们会告诉我,那个机构并不是好的。
AnyContentAsFormUrlEncoded(Map(name -> ArrayBuffer(123), surname -> ArrayBuffer(123)))
为什么,这不会给我的身体作为文字,或其他任何东西,以及我如何得到它们?
答案 0 :(得分:3)
根据您的表单和调试输出,您应该使用asFormUrlEncoded
。
答案 1 :(得分:2)
您还需要以下内容:
<form ... enctype="text/plain">
指定有效内容是纯文本。然后.asText
将起作用。
答案 2 :(得分:0)
您的内容类型可能不是text/plain
。当内容类型为预期时,BodyParser
将仅返回结果。
编辑:而不是asText
尝试asRaw
。