1

私はプレイするのが初めてで、JQuery を使用してフォーム データをプレイ アクションに投稿しようとしています。ただし、アクションから「予期される json」応答が返されます。HTTPヘッダーをチェックして、データが送信されていることを確認します。送信されていること、どこが間違っているのか、どうすれば修正できますか.(これに対するより良いアプローチはありますか)

脚本:

$(document).ready (function (){
    $("form").submit (function (e) {
        e.preventDefault();
        $.post("/save",$(this).serialize(),function (data){
            alert(data);
        });
     });
});

アクション

public static Result save()
{
    JsonNode json = request().body().asJson();
    if (json == null)
    return ok("expected json");
    else
    {
        String value = json.findPath("video").getTextValue();
        if (value == null)
            return ok("did not find");
        else
            return ok(value) ;
    }
}

ルート

  POST   /save                         controllers.Application.save()
4

1 に答える 1

2

両方: Julien Lafontとdfsqは正しいです。まず: フォームを JSON にシリアル化していません。次に、Julien が述べたように、必要はありません...現在の JS を使用すると、アクションで使用できDynamicFormますsave:

public static Result save() {
    DynamicForm df = form().bindFromRequest();

    String value = df.get("video");
    if (value == null || value.trim().equals(""))
        return badRequest("Video param was not sent");

    // do something with the value

    return ok(value);
}

ok()ところで、間違ったリクエストに対してレスポンスを返すために使用しないでください。多くbadRequest()オプションnotFound()TODOあります。status(int)

なんらかの理由でフォームを JSON にシリアル化する必要がある場合は、お知らせください。サンプルをお送りします。

于 2013-02-10T21:15:13.213 に答える