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 查询并通过以下方式传递参数javascriptRouteshttps ://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 回答