如何在ajax成功函数中从java获得单值响应
我的如何在ajax成功函数中从java获得单值响应,java,ajax,rest,Java,Ajax,Rest,我的ajax调用如下: var x = document.forms["myForm"]["param1"].value; var y = document.forms["myForm"]["param2"].value; $.ajax({ url: "./webapi/user/get?param1="+x+'¶m2='+y, contentType: 'application/json', type: "GET",
ajax
调用如下:
var x = document.forms["myForm"]["param1"].value;
var y = document.forms["myForm"]["param2"].value;
$.ajax({
url: "./webapi/user/get?param1="+x+'¶m2='+y,
contentType: 'application/json',
type: "GET",
data:{get_param:'value'},
success:function(data)
{
alert(data);
}
error:function(x,y,z){
alert(x+" "+y+" "+z);
}
});
public int getFlag(String p_param1,String p_param2) {
int flag=0;
try{
dcc.connectionCall();
stmt=dcc.con.prepareCall("{? = call function1(?,?)}");
stmt.registerOutParameter(1,OracleTypes.INTEGER);
stmt.setString(2, p_param1);
stmt.setString(3, p_param2);
stmt.execute();
flag = stmt.getInt(1);
System.out.println("FLAG = "+flag+" "+p_param1+" "+p_param2);
}
catch(SQLException e){
e.printStackTrace();
}
return flag;
}
我在UserService
类中有我的java
函数
是这样写的:
var x = document.forms["myForm"]["param1"].value;
var y = document.forms["myForm"]["param2"].value;
$.ajax({
url: "./webapi/user/get?param1="+x+'¶m2='+y,
contentType: 'application/json',
type: "GET",
data:{get_param:'value'},
success:function(data)
{
alert(data);
}
error:function(x,y,z){
alert(x+" "+y+" "+z);
}
});
public int getFlag(String p_param1,String p_param2) {
int flag=0;
try{
dcc.connectionCall();
stmt=dcc.con.prepareCall("{? = call function1(?,?)}");
stmt.registerOutParameter(1,OracleTypes.INTEGER);
stmt.setString(2, p_param1);
stmt.setString(3, p_param2);
stmt.execute();
flag = stmt.getInt(1);
System.out.println("FLAG = "+flag+" "+p_param1+" "+p_param2);
}
catch(SQLException e){
e.printStackTrace();
}
return flag;
}
我的用户资源
类
具有以下功能:
userService userservice = new UserService();
@GET
@Path("/get")
@Produces(MediaType.APPLICATION_JSON)
public int getUser(@QueryParam("param1") String p_param1,@QueryParam("param2") String p_param2) throws SQLException{
int flag = userservice.getUserFlag(p_param1,p_param2);
System.out.println("FLAG= "+flag+" "+p_param1+" "+p_param2);
return flag;
}
上面的内容在eclipse控制台上给出了正确的输出。但是,我无法在ajax
call
中获得响应,这只是一个标志。我怎么得到它?我搜索了很多,但一切都像是将对象作为响应,然后将其字符串化。但是我不需要整个json
。我只需要国旗。非常感谢您的帮助。我正在使用Tomcat
作为服务器,上面的任务是使用RESTful
web服务进行connectionpool
。使用$.parseJSON(数据)
并获得您想要的。或者,您必须将返回类型更改为cleartext(在服务器端),这似乎不可行
@Altinak是正确的,参考文件:
对$.ajax()调用的不同类型的响应会受到
不同类型的预处理在传递到成功之前
处理程序。默认情况下,预处理的类型取决于
响应的内容类型,但可以使用
数据类型选项。如果提供了数据类型选项,则内容类型
响应的标题将被忽略
使用$.parseJSON(数据)
并获得您想要的。或者,您必须将返回类型更改为cleartext(在服务器端),这似乎不可行
@Altinak是正确的,参考文件:
对$.ajax()调用的不同类型的响应会受到
不同类型的预处理在传递到成功之前
处理程序。默认情况下,预处理的类型取决于
响应的内容类型,但可以使用
数据类型选项。如果提供了数据类型选项,则内容类型
响应的标题将被忽略
请显示servlet的实际响应。要使它成为合法的JSON,它应该是数字,而不是别的。请显示servlet的实际响应。要使它成为合法的JSON,它应该是数字,而不是别的。jquery会自动解析通过网络接收的格式良好的JSONAJAX@px5x2,@Alnitak因为我希望返回一个整数值,那么
ajax
call中的数据类型应该是什么?@px5x2,@Alnitak,我能够在控制台上看到返回值,错误为severy:MessageBodyWriter找不到media type=application/json,type=class java.lang.Integer,genericType=int.
,但ajax调用中的success和error函数没有显示任何内容。jquery自动解析通过网络接收的格式良好的jsonAJAX@px5x2,@Alnitak由于我希望返回一个整数值,那么在ajax
call中的数据类型应该是什么?@px5x2,@Alnitak,我能够在控制台上看到返回值,错误为severy:MessageBodyWriter找不到media type=application/json,type=class java.lang.integer,genericType=int.
但是ajax调用中的成功和错误函数没有显示任何内容。