我在连接前端和后端时遇到问题。我想使用jquery ajax从javascript函数(单击时)发送一个值(radio1Value)。该函数应该看起来像我写的吗?
如果是,REST在Java中应该如何看待?后端收到的这个数字是否应该在函数Get()中作为参数?
$.ajax({
url: "someurl",
method: "post",
data: radio1Value
success: function (response) {
alert("Success!");
}
});
@GET
@Path("/{ship}")
public int Get(){
//check in matrix if number from radiovalue exists
}
检查后,我想将响应从后端发送到前端。
在这里提出建议后,我得到了什么
$("th").click(function(){
event.preventDefault();
var radio1Value;
var ifEnoughShips;
radio1Value = $("input[name='stat']:checked").val();
//sending radiovalue
$.ajax({
url : "localhost:8126/ship",
method : "get",
data : radio1Value
success: function (response) {
alert("Success!");
ifEnoudhShips=response;
)};
)};
-------------------------
//REST
public class RestTest{
@GET
@Path("abc/{ship}") //here I am not sure because I dont wanna use path
public int CheckHowMany(@PathParam("ship") Integer ship){
Checker ch1 = new Checker();
int res=ch1.CheckNumber(ship);
return res; //0 if number doesn't exists 1 if it does
}
}
答案 0 :(得分:0)
我假设url : "someurl",
只是一个占位符,实际上将包含正确的值。确保将请求发送到http://yourdomain.top/ship
,因为ship
是Java框架侦听的URL(@Path("/{ship}")
您需要设置正确的方法标题。
您在Java端点期望method : "post",
的同时发送@Get
。 Java框架可能不会将POST请求与GET操作匹配。
您需要接收一个参数,您正在使用的Java框架将其绑定到该参数。可能您需要这样做:
@GET
@Path("/{ship}")
public int Get(string radio1Value) {
//check in matrix if number from radiovalue exists
}
您需要解决的是:
编辑:对于onclick
部分,您需要使用jQuery将ajax请求包装到一个事件中(因为您正在使用此库)。您可以这样操作:
<button id="execute_on_click">Send request</button>
并在您的JavaScript中:
$("#execute_on_click").click(function(event) {
event.preventDefault();
$.ajax({
url: "localhost:8126/ship",
method: "get",
data: radio1Value
success: function (response) {
alert("Success!");
}
});
});
答案 1 :(得分:0)
您可以使用@PathParam
表示法。
@GET
@Path("/{ship}")
public int Get(@PathParam("ship") Integer ship){
//check in matrix if number from radiovalue exists
return 1; // Return your success int
}
完成功能后,您可以将所需的任何内容返回给前端。另外,在使用ajax时,请确保通过GET
方法调用后端并将参数附加在调用URL中。
$.ajax({
url: "someurl",
type: "get", //send it through get method
data: radio1Value,
success: function(response) {
//Do Something
},
error: function(xhr) {
//Do Something to handle error
}
});