在Play框架中简单的ajax post调用

时间:2015-02-02 23:36:00

标签: java ajax playframework playframework-2.2

您好我尝试在我的网站上按下按钮时使用ajax在Play框架中的java代码中发送一个字符串。我找不到一个简单的教程,只是解释了如何做到这一点。他们都在使用模板。 让我们说我的java方法是:

  public static Result upload() { }

我的按钮正在调用一个javascript方法,该方法在单击时从另一个输入获取String:

<input id="submit" type="submit" onclick="send();">

2 个答案:

答案 0 :(得分:7)

我没有测试,但这样的事情应该有用。

应用程序控制器

public static Result upload() {
    JsonNode node = request().body().asJson().get("stringField");
    String inputString = node.getTextValue();"
    System.out.println(inputString)      // prints the string from the form field
    return ok();
}

<强>路线

POST        /uploadfoostring       controllers.Application.upload()

<强>模板

<input type="text" id="string-field">

<input id="submit" type="submit" onclick="send();">

<script type = "text/javascript" >
  $('#submit').click(function(evt) {
      var inputString = $('#string-field').val();

      var obj = {
        stringField: inputString;
      };

      $.ajax({
        url: "@routes.Application.upload()",
        data: JSON.stringify(obj),
        headers: {
          'Content-Type': 'application/json'
        },
        type: 'POST',
        success: function(res) {
          if (res) {
            console.log("Success!");
          } else {
            console.log("Failed...");
          }
        }
      });
    }
</script>

答案 1 :(得分:1)

POST        /home/testPost                               controllers.Application.testPost

//Server Side.
def testPost = Action { request =>

    println("testPost Called");
    println(request.body.asFormUrlEncoded.get("name").head);
    Ok("Succeeded");

}


Client Side:

public static testPost(){
$.ajax({
url:"/dialog/testPost",
type:"POST",
data:{
name:"Varadharajan R"
},
success:function(response){
alert(response);
}
});
}