我正在使用Play 2.1.3,我有一个非常简单的应用程序如下:
包裹控制器
import play.api.mvc._
import play.api.libs.json._
import play.api.libs.functional.syntax._
object App extends Controller {
def sectors = Action(parse.tolerantJson) { request=>
Ok(Json.obj("Name"->"Scala"))
}
}
我的路线定义如下:
GET /sectors controllers.App.sectors
当然,当我删除parse.tolerantJson应用程序工作时,在我的应用程序中我需要使用parse.tolerantJson方法。
我在浏览器中收到以下错误:
Bad request
For request 'GET /sectors' [Invalid Json]
答案 0 :(得分:4)
tolerantJson
是用于解析 请求的解析器。
当您使用parse.json
或parse.tolerantJson
定义操作时,您说收到的请求必须包含json正文,并且必须使用JSON内容/类型发送。
在您的情况下,您只是在响应中发送 Json(在请求中未接收Json)。并且play尝试将空体解析为Json,因此您就会出现该错误。
Json内容类型将自动添加到您的回复中(因为Play知道如何使用Writable[JsValue]
呈现Json),所以您无需做任何事情。