[英]How to get a single value response from java in an ajax success function
我有這樣的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);
}
});
我在UserService
class
中編寫了java
函數,如下所示:
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
獲得響應,這不過是標志。 我如何得到它? 我進行了很多搜索,但一切都像獲取Object作為響應並將其stringified
。 但是我不需要整個json
。 我只需要標志。 任何幫助對此表示贊賞。 我正在將Tomcat
用作服務器,並且上面的分配用於帶有RESTful
Web服務的ConnectionPooling
。
使用$.parseJSON(data)
並獲得所需的內容。 或者,您將不得不將返回類型更改為明文(在服務器端),這似乎不可行。
@Altinak是正確的,請參閱jquery.ajax文檔:
對$ .ajax()調用的不同響應類型在傳遞給成功處理程序之前要經過不同類型的預處理。 預處理的類型默認情況下取決於響應的Content-Type,但是可以使用dataType選項顯式設置。 如果提供了dataType選項,則將忽略響應的Content-Type標頭。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.