簡體   English   中英

如何在Ajax成功函數中從Java獲得單個值響應

[英]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+'&param2='+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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM