4

私は次のAJAXリクエストを行っています:

$.post('/route', {
    arg1 : 'foo',
    arg2 : 'bar'
});

ルート経由:

POST   /route    controllers.Test.readPost()

コントローラのメソッドでこれらのPOST変数にアクセスするにはどうすればよいですか?

public static Result readPost() {
    return TODO; // read post variables
}

ドキュメントでこれを行う簡単な方法を見つけることができません。JSONリクエストから値を取得する方法のみを示しています。

4

2 に答える 2

9

使用するDynamicForm

public static Result getValues(){
    DynamicForm requestData = form().bindFromRequest();

    String name = requestData.get("name");
    String desg = requestData.get("desg");
    // etc

    return ok("You sent: " + name + ", " + desg);
}

AJAXクエリを作成し、 httpsjavascriptRoutes: //stackoverflow.com/a/11133586/1066240を介して引数を渡す他の可能性もあります

もちろん、URLを介してパラメーターを渡すため、すべての値に適しているわけではありませんが、多くの場所で、AJAXを使用してPOSTリクエストを送信するのに十分です。もちろん、ファイルjavascriptRoutesに設定されたタイプでリクエストを作成しroutesます。

ところで:使用しているバージョンを書いておくと良かったです。

于 2012-06-25T15:26:16.750 に答える
-2

GETはajaxRequestで使用できます。詳細については、 http://www.javascriptkit.com/dhtmltutors/ajaxgetpost.shtmlを参照してください。

var mygetrequest=new ajaxRequest()
mygetrequest.onreadystatechange=function(){
 if (mygetrequest.readyState==4){
  if (mygetrequest.status==200 || window.location.href.indexOf("http")==-1){
   document.getElementById("result").innerHTML=mygetrequest.responseText
  }
  else{
   alert("An error has occured making the request")
  }
 }
}
var namevalue=encodeURIComponent(document.getElementById("name").value)
var agevalue=encodeURIComponent(document.getElementById("age").value)
mygetrequest.open("GET", "basicform.php?name="+namevalue+"&age="+agevalue, true)
mygetrequest.send(null)
于 2012-06-25T14:32:45.607 に答える