您好我尝试在我的网站上按下按钮时使用ajax在Play框架中的java代码中发送一个字符串。我找不到一个简单的教程,只是解释了如何做到这一点。他们都在使用模板。 让我们说我的java方法是:
public static Result upload() { }
我的按钮正在调用一个javascript方法,该方法在单击时从另一个输入获取String:
<input id="submit" type="submit" onclick="send();">
答案 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);
}
});
}