play Framework 2.1 (Java) を使用して、簡単なことを達成しようとしています:
jquery 経由で JSON データを投稿し、コントローラーから取得します。
どこが間違っているのか教えていただけますか?
それはJavaScript呼び出しから始まります:
var object = new Object();
object.title = "Hamlet";
object.author = "Bill";
var jsonData = JSON.parse(JSON.stringify(object));
jsRoutes.controllers.Application.update().ajax({
type : 'POST',
dataType : 'json',
data : jsonData,
success : function(data) {
// I get the success
},
error : function(data) {
alert('error');
}
});
データは正しく投稿されているようです: Firebug コンソール:
ヘッダー:
Response Headers
Content-Length 2
Content-Type text/plain; charset=utf-8
Request Headers
Accept application/json, text/javascript, */*; q=0.01
Accept-Encoding gzip, deflate
... パラメーター
Parametersapplication/x-www-form-urlencoded
title Hamlet
author Bill
Source
title=Hamlet&Author=Bill
ここにルーティングします:
POST /update controllers.Application.update()
アプリケーション コントローラは次のとおりです。
@BodyParser.Of(BodyParser.Json.class)
public static Result update() {
JsonNode json = request().body().asJson();
if(json == null){
return badRequest("empty json"); // PROBLEM: THE JSON IS ALWAYS NULL
}
return ok("{}");
}
そして、私が得る問題は、リクエストからパラメーターを取得できないことです。request() を印刷すると空に見えます:
DefaultRequestBody(None,None,None,None,None,None,true)
私が間違っているところがわかりますか?JSONを正しく取得するにはどうすればよいですか?
前もって感謝します