我有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);
}
});
我在java
UserService
中的class
功能是这样写的:
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;
}
我的UserResource
class
具有以下功能:
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
中收到回复,这只是标志。我怎么得到它?我搜索了很多但是一切都像将对象作为响应并在那里得到它stringified
。但是我不需要整个json
。我只需要旗帜。任何帮助都非常感谢。我使用Tomcat
作为服务器,上述作业适用于ConnectionPooling
和RESTful
网络服务。
答案 0 :(得分:0)
使用$.parseJSON(data)
并获得您想要的内容。或者您必须将返回类型更改为明文(在服务器端),这似乎不可行。
@Altinak是对的,指的是jquery.ajax文档:
对$ .ajax()调用的不同类型的响应受到影响 在传递成功之前进行不同类型的预处理 处理程序。预处理的类型默认取决于 内容 - 响应的类型,但可以使用显式设置 dataType选项。如果提供了dataType选项,则为Content-Type 回复的标题将被忽略。